【问题标题】:stackdriver logging client library missing severity with pythonstackdriver记录客户端库缺少python的严重性
【发布时间】:2019-10-01 15:36:47
【问题描述】:

我想从我的应用引擎标准 python3 应用程序向堆栈驱动程序日志发送更具表现力的日志条目。 通过关注official documentation,我能够将我的日志发送到堆栈驱动程序,并且似乎时间戳已正确解析。

但我缺少严重级别。此外,我看不到将某个请求的日志链接到一个操作的方法。 Java 日志记录似乎是开箱即用的。

这里是我的代码供参考:

import logging
import os

from flask import Flask
from google.cloud import logging as glog

app = Flask(__name__)
log_client = glog.Client(os.getenv('GOOGLE_CLOUD_PROJECT'))
# Attaches a Google Stackdriver logging handler to the root logger
log_client.setup_logging()


@app.route('/_ah/push-handlers/cloudbuild', methods=['POST'])
def pubsub_push_handle():

    logging.info("stdlib info")
    logging.warning("stdlib warn")
    logging.error("stdlib error")

导致堆栈驱动程序的日志:

正如您所见,时间戳和消息是可用的,而严重性却奇怪地丢失了,它被归类为“任何”

有人能指出我正确的方向吗?还是目前还没有这种级别的公司?

感谢您的宝贵时间! 卡斯滕

【问题讨论】:

标签: python-3.x google-app-engine google-cloud-platform stackdriver google-cloud-stackdriver


【解决方案1】:

您需要创建自己的记录器并将google-cloud-logging 默认处理程序添加到其中:

import logging

from flask import Flask
from google.cloud import logging as cloudlogging

log_client = cloudlogging.Client()
log_handler = log_client.get_default_handler()
cloud_logger = logging.getLogger("cloudLogger")
cloud_logger.setLevel(logging.INFO)
cloud_logger.addHandler(log_handler)

app = Flask(__name__)

@app.route('/_ah/push-handlers/cloudbuild', methods=['POST'])
def pubsub_push_handle():
    cloud_logger.info("info")
    cloud_logger.warning("warn")
    cloud_logger.error("error")
    return 'OK'

生产:

【讨论】:

  • 这个方案我试过了,其他几个页面都提出过,对我不起作用,warn还是报错,你用的是哪个版本的google cloud logging library?跨度>
  • 这适用于“全局”资源类型的日志,例如在本地机器上运行的日志,但由于某种原因它不适用于 GAE。
猜你喜欢
  • 2018-09-09
  • 2020-08-21
  • 2020-07-30
  • 2022-07-03
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 2013-05-22
  • 2012-01-04
相关资源
最近更新 更多