在最简单的情况下,我不会从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
语句之前或之后。