在 App Engine 标准 python 中使用 Google Stackdriver 日志时出错

2024-04-22

我的堆栈:
谷歌应用程序引擎标准
Python (2.7)

Goal:
要在 Google Stackdriver Logging 中创建命名日志,https://console.cloud.google.com/logs/viewer https://console.cloud.google.com/logs/viewer

文档 - Stackdriver 日志记录: https://google-cloud-python.readthedocs.io/en/latest/logging/usage.html https://google-cloud-python.readthedocs.io/en/latest/logging/usage.html

Code:

from google.cloud import logging as stack_logging
from google.cloud.logging.resource import Resource
import threading

class StackdriverLogging:
    def __init__(self, resource=Resource(type='project', labels={'project_id': 'project_id'}), project_id='project_id'):

    self.resource = resource
    self.client = stack_logging.Client(project=project_id)

    def delete_logger(self, logger_name):
        logger = self.client.logger(logger_name)
        logger.delete()

    def async_log(self, logger_name, sev, msg):
        t = threading.Thread(target=self.log, args=(logger_name, sev, msg,))
        t.start()

    def log(self, logger_name, sev, msg):
        logger = self.client.logger(logger_name)

    if isinstance(msg, str):
        logger.log_text(msg, severity=sev, resource=self.resource)
    elif isinstance(msg, dict):
        logger.log_struct(msg, severity=sev, resource=self.resource)

class hLog(webapp2.RequestHandler):
   def get(self):
      stackdriver_logger = StackdriverLogging()
      stackdriver_logger.async_log("my_new_log", "WARNING", msg="Hello")
      stackdriver_logger.async_log("my_new_log", "INFO", msg="world")

ERROR:找到 1 个没有匹配响应的 RPC 请求

如果这在 Google App Engine 标准 (Python) 中不可能,可以通过任何方式让此代码正常工作:

  from google.cloud import logging
  client = logging.Client()
  # client = logging.Client.from_service_account_json('credentials.json')
  logger = client.logger("my_new_log")
  logger.log_text("hello world") 

如果需要凭据,我喜欢使用项目服务帐户。

任何帮助,将不胜感激。谢谢。


我通常将 Python 日志记录模块直接绑定到 Google Stackdriver Logging 中。 为此,我创建了一个 log_helper 模块:

from google.cloud import logging as gc_logging
import logging

logging_client = gc_logging.Client()
logging_client.setup_logging(logging.INFO)

from logging import *

然后我将其导入到其他文件中,如下所示:

import log_helper as logging

之后,您可以像使用默认的 python 日志记录模块一样使用该模块。

要使用默认的 python 日志记录模块创建命名日志,请为不同的命名空间使用不同的记录器:

import log_helper as logging

test_logger = logging.getLogger('test')
test_logger.setLevel(logging.INFO)
test_logger.info('is the name of this logger')

Output:

INFO:test:是该记录器的名称

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 App Engine 标准 python 中使用 Google Stackdriver 日志时出错 的相关文章

  • HTML 嵌入对象具有灰色背景。可以透明吗?

    我使用带有开源插件的 Firefox 来播放视频 视频被 尽可能好地 缩放以适应嵌入对象的宽度和高度中定义的可用空间 但有时右侧和 或底部会有一点灰色边框 看来这不是我的父 div 的背景颜色 因为更改它根本没有效果 这是 HTML div
  • Xcode 6.4 Swift 单元测试无法编译:“GPUImage.h 未找到”“无法导入桥接标头”

    我的 Xcode 项目构建并运行良好 它有 Swift 和 Objective C 代码 它已安装 GPUImage 我向它添加了单元测试 现在它将不再编译 找不到 GPUImage h 文件 导入桥接标头失败 以下是我发现并尝试过的解决方
  • 跨延迟加载路由创建共享模块

    我正在构建一个 Angular 11 应用程序并尝试创建一个SharedModule 我正在使用延迟加载 并希望避免在延迟加载的路由中多次加载公共模块 我创建了一个共享模块并将其导入到我的AppModule 根据我的理解 这个共享模块应该在
  • 按列分组的数据帧上 R 中的行之间的差异

    我希望通过 app name 获得不同版本的计数差异 我的数据集如下所示 app name version id count difference 这是数据集 data structure list app name structure c
  • 在应用程序的所有活动中重用操作栏

    我创建了一个 MenuActivity 它有一个操作栏和一个拆分操作栏 我想将此操作栏和 splitactionbar 视图用于我的应用程序中的所有活动 我是 android 的新手 所以有人可以逐步指导我 另外 我试图将搜索图标放在操作栏
  • 如何防止 Safari 滚动溢出:隐藏的 iframe?

    使用 Safari 您可以通过设置 style overflow hide 来禁用大多数 iframe 滚动 在 iframe 上 但是 如果您单击 iframe 并移动鼠标 内容无论如何都会滚动 Example 滚动内容 html
  • 使用 AWS MSK 连接器连接到 AWS VPC 内的 MongoDB atlas

    我正在尝试使用MongoDB使用更改流Kafka 我选择 AWS MSK 是因为我的整个基础设施都位于 AWS 内 并且可以轻松与其他 AWS 服务集成 I created an AWS MSK cluster within the VPC
  • 安装 APK 时出现会话“应用程序”错误

    我在将 Android Studio 1 1 编写的项目导入 Android Studio 2 1 2 时遇到困难 每当在平板电脑上测试应用程序之前构建 gradle 时 我都会收到此错误 下面是错误的屏幕截图 有谁知道是什么问题 我尝试过
  • 使用 wmi 获取活动会话(Win32_LogonSession 还返回非活动/旧会话)

    有没有办法只显示 wmi 的活动会话 问题是 Win32 LogonSession 还显示不活动 断开连接的会话 ManagementScope scope new ManagementScope ManagementPath Defaul
  • 如何在Asp.Net Core中自定义开发者异常页面?

    这常见于ConfigureStartup cs 文件的方法具有如下所示的代码 if env IsDevelopment app UseDeveloperExceptionPage new DeveloperExceptionPageOpti
  • 从基元创建自定义形状

    我正在尝试通过组合原始形状来创建自定义物理形状 目标是创建一个圆形立方体 合适的方法似乎是初始化 形状 变换 我在这里找到的https developer apple com library prerelease ios documenta
  • DELPHI 和 WANT 或 NANT

    We use 巡航控制 net http confluence public thoughtworks org display CCNET Welcome to CruiseControl NET在 Delphi 2006 应用程序中进行持
  • 重定向到破折号中的 url

    我正在使用 dash 构建一个仪表板 每当单击特定数据点时 我都会创建一个唯一的 url 如何将用户重定向到此创建的 url 我正在使用下面给出的代码 每当有人单击任何数据点时 单击事件就会触发并执行回调函数 app layout html
  • CSS - 为什么我无法设置 元素的高度和宽度?

    我正在尝试使用以下 html 标记创建 css 按钮 a href access php class css button red Forgot password a 但它最终不会比中间的文本大 即使我已经设置了班级的高度和宽度 顺便说一句
  • 如何将 c_uint 的 ctypes 数组转换为 numpy 数组

    我有以下 ctypes 数组 data ctypes c uint 100 我想创建一个 numpy 数组np data包含来自 ctypes 数组数据的整数值 ctypes 数组显然稍后会填充值 我看到numpy中有一个ctypes接口
  • 如何使用 Spark 2 屏蔽列?

    我有一些表 我需要屏蔽其中的一些列 要屏蔽的列因表而异 我正在读取这些列application conf file 例如 对于员工表如下所示 id name age address 1 abcd 21 India 2 qazx 42 Ger
  • 如何通过API集成keycloak短信验证?

    我有一个 keycloak 服务器和使用自定义 KeycloakProvider 的 Laravel 应用程序 public function loginByEmail string email string password SsoTok
  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足
  • KIOSK 系统的一台 PC 上有多个显示器

    我正在使用 PHP HTML5 和 Javascript 开发 KIOSK 系统 我想在一台 PC 上连接多个 触摸屏 显示器 我希望这些监视器以全屏模式显示浏览器 用户只能访问 我的网站 而无需任何其他控件 他们不会有鼠标或键盘 他们不应
  • C++20 范围太多 |运营商?

    我在这段代码中使用 g 10 2 有谁知道为什么我最后收到编译器错误std views reverse on results3 include

随机推荐

  • Pylint 找不到 SQLAlchemy 查询成员

    我有一个使用 Flask SQLAlchemy v2 0 的 Flask v0 10 1 应用程序 我正在尝试配置 Pylint 来检查它 使用 Python 3 4 2 运行 第一个错误是 Instance of SQLAlchemy h
  • Unix域SOCK_DGRAM和SOCK_SEQPACKET之间的区别?

    根据 Unix 套接字的 Linux 手册页 UNIX 域中的有效套接字类型是 SOCK DGRAM 对于保留消息边界的面向数据报的套接字 与大多数 UNIX 实现一样 UNIX 域数据报套接字始终可靠且不可靠 不重新排序数据报 以及 自
  • 发送 HTTP 标头后,服务器无法附加标头

    我在我的 ASP NET C Web 应用程序中间歇性地收到此异常 发送 HTTP 标头后 服务器无法附加标头 这是由于应用程序在发送页面后将内容附加到页面响应标头而引起的 我不确定为什么它是间歇性的 但我需要做的是在修改标题之前执行检查
  • 从另一个类调用 RecyclerView.Adapter 上的 notificationItemChanged()

    我有一个RecyclerView in AdapterActivity 单击其任何项目后 我使用我的更新该项目AlertDialogShow UpdateStudent 方法 我的问题是无法刷新Adapter在 的里面UpdateStude
  • 内联汇编中的内存偏移

    在 A64 汇编器中 有不同的方法来指定地址 base 0 Simple register exclusive Immediate Offset base imm Offset Immediate Offset base Xm LSL im
  • MT5212:本机链接失败,重复符号:'_OBJC_IVAR_$_FIRInstanceID._tokenManager'

    我通过绑定本机目标 c 库创建了 iOS dll 文件 直到现在一切都工作正常 xamarin ios 应用程序也工作正常 现在 我已在本机 Objective C 库中添加了 Firebase 框架 Firebase Auth 数据库 分
  • 将图像上传到 firebase 并在 sqlite DJango 中保存 url

    突然有人可以指导我 我制作了一个应用程序 人们有一个正常的个人资料 有一系列可以修改个人资料照片的字段 在本地它工作得很好 但是 当将其部署在heroku 免费帐户 中时 这是不可能的 因为heroku在其免费版本中确实不处理动态文件 或者
  • 返回对象数组的所有匹配元素?

    我有一个由具有两个属性的对象组成的数组 一个属性 值 是 1 到 6 之间的数字 另一个属性 id 是 1 到 200 之间的数字 如何返回所有 value 1 的对象的 id 属性并将它们写入新数组 您应该调用Array prototyp
  • IIS 7 URL 重写

    我已经为此工作了几个小时 现在正试图让它发挥作用 我有一个 CodeIgniter 网站 曾经在 Apache 服务器上运行良好 我使用 Apache URL Rewriter 作为 URL 来隐藏 index php 由于某种原因 我无法
  • python 的日志记录模块在 cygwin 下报告不正确的时区

    我正在 Windows 7 上的 cygwin 下运行使用日志记录模块的 python 脚本 date命令报告正确时间 date Tue Aug 14 2012 2 47 49 PM 然而 Python 脚本已经关闭了五个小时 2012 0
  • SQL 查询中的“NOT LIKE”

    为什么这个简单的查询会返回 ORA 00936 缺少表达式 正如您所知 数据库是 Oracle SELECT FROM transactions WHERE id NOT LIKE 1 AND NOT LIKE 2 我觉得自己很傻 但我做错
  • 如何使用 MS SQL 2008 获取数据库中的表列表?

    我想验证数据库中是否存在表 如果不存在 则创建它 如何获取当前数据库中所有表的列表 我可以使用这样的 SELECT 获取数据库列表 SELECT FROM sys databases 剩下的就是创建该表 如果该表不存在 我还尝试与数据库同时
  • +exposeBinding 不起作用

    我试图在 NSWindowController 的子类中公开自定义绑定 我在子类中添加了以下代码 void initialize self exposeBinding customBinding 然后 在 IB 中 我有一个子类的对象实例
  • 如何暂停使用DownloadManager?

    我想实现下载时 可以由用户暂停 停止 如何使用 DownloadManager 实现此目的 You can 删除下载 http developer android com reference android app DownloadMana
  • 如何从外部网站重新创建图像预览?

    与 Facebook 的 UI 类似 我尝试从外部链接网站生成预览图像 这样 当用户输入要链接的 url 时 UI 将默认扫描该网站以查找图像并抓取预览缩略图 这项技术有具体的名称吗 或者有人可以指出我学习这个的方向吗 非常感谢 其名为刮
  • 如何调整外部 SWF 的大小以适合容器?

    我想要完成的是调整外部 SWF 的大小 使其适合在舞台上作为容器呈现的显示对象 现在它显示在容器外部 重要提示 我不希望外部 SWF 占据整个舞台 我在舞台上为它准备了一个特殊的地方 那个容器 public function loaderC
  • Perl CGI 脚本根据运行返回不同的结果

    我有一个 Perl CGI 脚本 它明显随机地发出不同的 HTML 所有输入都没有改变 例如 我会跑wget两次并得到两个不同的结果 CGI 由开发数据库支持 该数据库也不会改变 我有一个调试语句 通知我相同数量的元素从数据库返回到脚本中
  • 将 csv 数据写入命名空间内的矩阵时,TCL 抛出无效命令名称

    这是一个奇怪的问题 我似乎无法弄清楚 我正在使用 TCL 8 5 我正在尝试使用以下命令将数据从 CSV 文件读取到矩阵中csv read2matrix命令 然而 每次我这样做时 它都会说我试图写入的矩阵是无效命令 我正在做的事情的片段 p
  • 嵌入式 JavaScript 中的特殊字符

    我有一些嵌入在 html 文件中的 javascript 如下所示 它有一条像这样的线 if os Mac br Safari br Chrome 一切顺利 这意味着脚本可以工作 但是验证者 http validator w3 org 正在
  • 在 App Engine 标准 python 中使用 Google Stackdriver 日志时出错

    我的堆栈 谷歌应用程序引擎标准Python 2 7 Goal 要在 Google Stackdriver Logging 中创建命名日志 https console cloud google com logs viewer https co