在最简单的情况下,我没有从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]
答案 0 :(得分:0)
原因是您尚未指定处理程序。在Python 3.5上,当您没有指定处理程序时使用内部"handler of last resort",但该内部处理程序的级别为WARNING
,因此不会显示较低严重性的消息。您需要指定一个处理程序并像这个示例一样添加它:
logger.addHandler(logging.StreamHandler())
在您的代码段中的setLevel
语句之前或之后。