在最简单的场景中,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,以及记录器是否为该级别启用,这是真的。但是对于CCD_ 4出现输出而对于log.debug不出现输出。我错过了什么?

[Python 3.5,OS X 10.11]

原因是您没有指定处理程序。在Python 3.5上,当您没有指定处理程序,但该内部处理程序的级别为WARNING,因此不会显示严重性较低的消息时,会使用内部"最后的处理程序"。您需要指定一个处理程序,并像下面这样添加它:

logger.addHandler(logging.StreamHandler())

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

最新更新