gpt4 book ai didi

Python 调试记录器未出现在控制台中

转载 作者:行者123 更新时间:2023-12-01 09:13:07 24 4
gpt4 key购买 nike

这让我发疯,我有以下脚本:

#!/usr/bin/env python3


import logging


logger = logging.getLogger()
logger.setLevel(logging.DEBUG)

print(logger.getEffectiveLevel())
print(logger.isEnabledFor(logging.DEBUG))
logger.debug("test") #???

运行时输出以下内容:

10
True

为什么我的 logger.debug 语句没有执行任何操作???

最佳答案

因为您没有配置任何处理程序。如果没有配置处理程序,日志事件将无处可去。当没有配置处理程序时,如果看到 WARNING 或以上级别的事件,但您的事件仅处于 DEBUG 状态,则根记录器会自动添加一个处理程序。

试试这个:

>>> import logging
>>> logger = logging.getLogger() # this is the root logger
>>> logger.handlers
[]
>>> logging.basicConfig(level=logging.DEBUG)
>>> logger.handlers
[<StreamHandler <stderr> (NOTSET)>]
>>> logger.debug('test')
DEBUG:root:test

如果您没有另外指定,基本配置将添加一个 StreamHandler 写入 sys.stderr

此时,我邀请您考虑 a 3rd-party logging framework具有比 stdlib 日志记录更合理的默认值。

>>> import structlog
>>> logger = structlog.get_logger()
>>> logger.debug("test message", key1='val1', key2='val2')
2018-07-23 13:13.28 test message key1=val1 key2=val2

关于Python 调试记录器未出现在控制台中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51484869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com