python - 无法在 AWS Lambda 中显示信息级别日志记录

标签 python aws-lambda python-logging

我正在尝试在 AWS lambda 中运行脚本,我想在脚本运行后将信息级别的日志输出到控制台。我试过从 This post 寻求帮助在 lambda 购买中使用日志没有取得任何成功。我认为 AWS Cloudwatch 正在覆盖我如下所示的配置。


import logging
# log configuration
logging.basicConfig(
    format='%(levelname)s: %(message)s',
    level=logging.INFO,
    encoding="utf-8"
    )

我想将日志记录级别设置为 logging.info。我怎样才能做到这一点?运行时是python 3.9

最佳答案

根据我的理解,我认为一种解决方法是添加以下内容:

logging.getLogger().setLevel('INFO')

我相信 logging.basicConfig(level=...) 会影响日志在控制台中显示的最低日志级别,但会影响所有记录器。上面的代码明确设置了根记录器的最低启用级别,即 logging.getLogger()。每个记录器的启用级别决定了将在什么级别记录消息 - 否则,每次调用像 logging.info 这样的记录器方法基本上都是空操作。

本质上,basicConfigsetLevel 调用是分开的,但它们一起工作以确定是否将库的日志打印到控制台。例如,您可以设置 basicConfig(level='DEBUG') 以便打印出所有库的调试级别日志。但是如果你想为像 botocore 这样的库做一个异常(exception),你可以使用 logging.getLogger('botocore').setLevel('WARNING'),和这会将该库的最低启用级别设置为警告,因此只有该库记录的高于该最低级别的消息才会打印到控制台。

关于python - 无法在 AWS Lambda 中显示信息级别日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69367479/

相关文章:

python - 当控制进入函数内部/外部时自动调试日志

django - 有什么方法可以将当前日志记录修改为 json 格式,并添加了一些其他字段 python 日志记录

python - 在使用 mechanize 重定向之前获取并保存 http 响应

python - 在 psycopg2 中传递参数

java - 2 个线程是否会同时访问我的 Java AWS Lambda?

node.js - 如何在下类时间将我的 AWS Lambda 预配置容量设置为零?

python - 登录 Python/Django 未按预期工作

python - 403 错误与 tweepy

python - 通过 Python 运行 Windows 任务计划程序

java - 从 AWS Lambda 发布到 SNS 时超时