Python Google Cloud Function记录严重性和重复项

ajg*_*ese 5 python google-cloud-platform google-cloud-functions google-cloud-stackdriver

我正在研究一个在Python运行时中运行的简单Google Cloud Function,并且我希望从Python程序到Stackdriver Logging进行一些简单的日志记录。

根据Google的启动指南,此操作应该很简单 https://cloud.google.com/logging/docs/setup/python

我设置了一个简单的测试功能来隔离我看到的日志记录问题

import google.cloud.logging

def logging_test_background(data, context):

    logging_client = google.cloud.logging.Client()
    logging_client.setup_logging()

    logging.info("This should be info")
    logging.debug("This should be debug")
    logging.warning("This should be warning")
    logging.error("This should be error")
Run Code Online (Sandbox Code Playgroud)

在Stackdriver Logging中,一切变得混乱。 在此处输入图片说明 1.信息被复制为错误2.调试未通过3.警告被复制,但是两者均为错误记录级别4.错误被复制

我的配置中缺少什么吗?

Dus*_*ram 8

您需要创建自己的记录器并向其添加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)

def logging_test_background(data, context):
    cloud_logger.info("info")
    cloud_logger.warning("warn")
    cloud_logger.error("error")
    return 'OK'
Run Code Online (Sandbox Code Playgroud)

产生:

在此处输入图片说明

  • 我准确地测试了这段代码。它解决了重复问题,并且信息正确传递,但警告仍然作为错误传递。 (4认同)