Dav*_*ter 4 python aws-lambda python-logging
我正在尝试在 AWS lambda 中运行脚本,并且希望在脚本运行后将信息级别日志输出到控制台。我尝试从这篇关于在 lambda 购买中使用日志的文章中寻求帮助,但没有取得任何成功。我认为 AWS Cloudwatch 正在覆盖我的配置,如下所示。
import logging
# log configuration
logging.basicConfig(
format='%(levelname)s: %(message)s',
level=logging.INFO,
encoding="utf-8"
)
Run Code Online (Sandbox Code Playgroud)
我想将日志记录级别设置为logging.info。我怎样才能做到这一点?运行时是python 3.9
根据我的理解,我认为一个修复方法是添加以下内容:
logging.getLogger().setLevel('INFO')
Run Code Online (Sandbox Code Playgroud)
我相信这logging.basicConfig(level=...)会影响日志在控制台中显示的最低日志级别,但会影响所有记录器。上面的明确设置了根记录器的最低启用级别,即logging.getLogger()。每个记录器的启用级别决定了将记录消息的级别 - 否则,每次调用记录器方法logging.info基本上都是无操作。
因此本质上,basicConfig和setLevel调用是分开的,但它们一起确定库的日志是否打印到控制台。例如,您可以设置basicConfig(level='DEBUG')打印所有库的调试级别日志。但是,如果您想对一个库进行例外处理,例如botocore,您可以使用logging.getLogger('botocore').setLevel('WARNING'),这会将该库的最低启用级别设置为 WARNING,因此只有该库记录的高于该最低级别的消息才会打印到控制台。