找不到记录器的处理程序

新手上路,请多包涵

我是 python 的新手。我在尝试登录 python 时遇到了 No handlers could be found for logger error while trying to print some warning through logger instance.下面是我试过的代码

import logging
logger=logging.getLogger('logger')
logger.warning('The system may break down')

我收到此错误 找不到记录器“记录器”的处理程序

令我困惑的是,当我第一次尝试使用 logging 然后通过 logger 打印警告时,它工作正常,比如

>>> import logging
>>> logging.warning('This is a WARNING!!!!')
WARNING:root:This is a WARNING!!!!
>>>
>>> logger.warning('WARNING!!!!')
WARNING:logger:WARNING!!!!

有人可以阐明第二种情况下发生的事情吗?

原文由 qwerty 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 277
2 个回答

为了通过 logger 记录一些消息,在 Python 中至少应将一个处理程序添加到 logger 对象。 By default the debug , warn and other functions in logging module will call basicConfig which in turn will add a StreamHandlerroot logger

始终 建议 将所需的处理程序添加到您为模块编写的记录器对象中。

你可以参考 Python 官方文档,里面有 很棒的教程,或者你可以自己查看日志模块的源代码。

您只需通过以下方式检查 Python shell 本身的源代码,

 import logging
import inspect
print(inspect.getsource(logging))

最后,明确调用 basicConfig 将解决问题。

 import logging
logging.basicConfig()
logger = logging.getLogger('logger')
logger.warning('The system may break down')

原文由 praba230890 发布,翻译遵循 CC BY-SA 4.0 许可协议

调用 logging.basicConfig()

 >>> import logging
>>> logging.basicConfig()
>>> logger = logging.getLogger('logger')
>>> logger.warning('The system may break down')
WARNING:logger:The system may break down

原文由 phd 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题