【问题标题】:Python Google Cloud Function Logging Severity and DuplicatesPython Google Cloud Function 记录严重性和重复项
【发布时间】:2019-11-10 11:11:15
【问题描述】:

我正在开发一个在 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")

在 Stackdriver Logging 中,一切都变得混乱。 1.信息被重复为错误 2. 调试不通过 3. 警告重复,但都是错误日志级别 4.错误重复

我在配置中缺少什么吗?

【问题讨论】:

    标签: python google-cloud-platform google-cloud-functions 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)
    
    def logging_test_background(data, context):
        cloud_logger.info("info")
        cloud_logger.warning("warn")
        cloud_logger.error("error")
        return 'OK'
    

    生产:

    【讨论】:

    • 我完全测试了这段代码。它解决了重复问题并且信息正确通过,但警告仍然作为错误出现。
    • 是否可以使用execution_id,因为它对跟踪 GCF 实例很有用。
    • 我附和@ajgriese 所说的话。警告仍然以错误的形式出现。你找到解决办法了吗?
    • 调试呢?
    • @Tjorriemorrie 调试级别消息没有通过很可能是因为默认级别是信息(优先级高于调试)
    猜你喜欢
    • 1970-01-01
    • 2020-06-23
    • 2019-03-16
    • 2019-02-07
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 2022-07-03
    • 1970-01-01
    相关资源
    最近更新 更多