【问题标题】:How to stop splitting single python log messages across multiple log entries in cloudwatch?如何停止在 cloudwatch 中跨多个日志条目拆分单个 python 日志消息?
【发布时间】:2020-04-17 17:55:16
【问题描述】:

在我的 python 代码中,我有这样的东西:

import logging
LOGGER = logging.getLogger(__name__)
try: 
    raise Exception("!")
except Exception as err:
    LOGGER.exception(f"Some context info")

不幸的是,在 cloudwatch 中,我看到堆栈跟踪的每一行都显示为单独的日志条目。我希望整个堆栈跟踪显示为 cloudwatch 中的单个日志条目。我怎样才能做到这一点?

我认为这无关紧要,但如果确实如此,我将使用 python 3.7 lambda 运行时。

【问题讨论】:

  • 您可以使用像 github.com/madzak/python-json-logger 这样的 JSON 日志记录格式,或者您可以跳过记录器并让 Lambda 处理异常 - 这也将堆栈跟踪格式化为单个日志条目

标签: python python-3.x aws-lambda amazon-cloudwatchlogs python-logging


【解决方案1】:

回溯模块的小技巧解决了这个问题。

import traceback

try:
    do_stuff_here()
except ClientError as e:
    tb = traceback.format_exc().replace("\n", "\r")
    logger.error("Error %s. Traceback: %s", e, tb)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 2016-02-14
    • 2021-06-24
    • 2015-06-03
    • 2018-12-08
    相关资源
    最近更新 更多