【问题标题】:Python Log Name Not Showing in Google Cloud Platform Console Log ViewPython 日志名称未显示在 Google Cloud Platform 控制台日志视图中
【发布时间】:2024-05-03 01:40:03
【问题描述】:

我正在设置 Google Cloud 功能。当我尝试设置 python 日志名称时,我无法让 Google Cloud Platform Logging 控制台在控制台日志窗口中显示日志名称。仅显示云函数的“名称”。我尝试这样做的原因是因为我想轻松识别函数的哪个部分输出哪些日志条目。

我尝试将其插入到我的 main.py 文件中:

from google.cloud import logging as cloudlogging
import logging
lg_client = cloudlogging.Client()
lg_handler = lg_client.get_default_handler()
cloud_logger = logging.getLogger("foobarlog")
cloud_logger.addHandler(lg_handler)

如上所述,日志名称设置为“foobarlog”。但是在下面的 Google Cloud Console 日志中,只显示了函数名称“Download”。根据下面的屏幕截图,我无法弄清楚如何在日志摘要中显示“foobarlog”。

截图:https://i.stack.imgur.com/LLS4Z.png

【问题讨论】:

  • 您能否向我们展示屏幕截图中显示的最后两个日志条目的内容。一个具有 Traceback 和另一个已完成的执行状态。可能是您的日志记录代码甚至没有运行。但让我们先看看那些日志内容。
  • 嗨@fhenriques - 代码运行。我相信这可能是一个 GCP 问题。我将提交一个功能请求。

标签: python logging google-cloud-platform


【解决方案1】:

我刚刚复制了您的案例,这是我设法根据需要添加自定义标签的方法。

我的示例函数

    import logging

    log_name = 'foolog'
    logger = logging.getLogger('foolog')

    from google.cloud import logging as glogging
    client = glogging.Client()
    cloud_log = client.logger('foolog')

    handler = client.get_default_handler()
    cloud_logger = logging.getLogger('foolog')
    cloud_logger.addHandler(handler)

    def test_logging(request):
    logger.info("--- START ---")

    cloud_logger.debug("cloud_logger.debug")
    cloud_logger.info("cloud_logger.info")
    cloud_logger.warn("cloud_logger.warn")
    cloud_logger.error("cloud_logger.error")

    logger.info("--- END ---")
    return 'OK'

之后你可以进入日志查看器,将选中的资源设置为全局,选择所需日志的Json payload > python_logger > 添加字段摘要行。

最后你会在stackdriver中看到你的标签

【讨论】:

  • 谢谢,我会试一试,太棒了!