stackdriver 记录客户端库缺少 python 的严重性

Car*_*etz 8 google-app-engine python-3.x google-cloud-platform stackdriver google-cloud-stackdriver

我想从我的应用引擎标准 python3 应用程序向堆栈驱动程序日志发送更具表现力的日志条目。通过遵循官方文档,我能够将我的日志发送到 stackdriver,并且时间戳似乎被正确解析。

但我错过了严重程度。此外,我看不到将某个请求的日志链接到操作的方法。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")
Run Code Online (Sandbox Code Playgroud)

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

登录堆栈驱动程序

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

有人可以指出我正确的方向,还是这种级别的合并尚不可用?

谢谢你的时间!卡斯腾

Dus*_*ram 7

您需要创建自己的记录器并向其添加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'
Run Code Online (Sandbox Code Playgroud)

产生:

在此处输入图片说明

  • 我已经尝试过这个解决方案,该解决方案是在其他几个页面上提出的,它对我不起作用,警告仍然是一个错误,您使用哪个版本的谷歌云日志记录库? (3认同)