Python日志记录消息在最简单的scenari中没有得到预期的输出

2024-04-26 09:39:30 发布

您现在位置:Python中文网/ 问答频道 /正文

在最简单的情况下,我没有从logging.debug得到任何输出(我确实从logger.warn得到了输出。)

import logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
logger.warn('Logger is warning')
logger.debug('Logger is debugging')
print(logger.getEffectiveLevel(),
      logger.isEnabledFor(logging.DEBUG),
      file=sys.stderr)

最后一行打印记录器的日志级别,显示为logging.DEBUG,以及是否为该级别启用记录器,这是真的。但是输出是为log.warn而不是为log.debug显示的。我错过了什么

[Python 3.5,OS X 10.11]


Tags: debugimportlogislogging情况logger级别
1条回答
网友
1楼 · 发布于 2024-04-26 09:39:30

原因是您尚未指定处理程序。在Python3.5上,如果没有指定处理程序,则使用内部"handler of last resort",但该内部处理程序的级别为WARNING,因此不会显示严重性较低的消息。您需要指定一个处理程序并添加它,如下示例所示:

logger.addHandler(logging.StreamHandler())

在代码段中的setLevel语句之前或之后

相关问题 更多 >