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 模块