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

Posted

技术标签:

【中文标题】Python Google Cloud Function 记录严重性和重复项【英文标题】:Python Google Cloud Function Logging Severity and Duplicates 【发布时间】: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.错误重复

我在配置中缺少什么吗?

【问题讨论】:

【参考方案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 调试级别消息没有通过很可能是因为默认级别是信息(优先级高于调试)

以上是关于Python Google Cloud Function 记录严重性和重复项的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google Python Client for Cloud Functions 获取 Google Cloud Functions 列表?

python Google Cloud Python - 示例

Google App Engine - 大查询 - Python 找不到库 google.cloud

无法在 python 脚本中导入 google.cloud 模块

从 Cloud Function (python) 写入 Google Cloud Storage

使用 google-cloud-python API 访问 Dataproc 时出现无效区域错误