【发布时间】:2011-09-30 15:23:26
【问题描述】:
在logging howto documentation中有这个例子:
import logging
# create logger
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
为什么我要将级别设置为logging.DEBUG 两次,分别是Logger 和StreamHandler?
我了解ch.setLevel(logging.DEBUG) 将为流处理程序设置调试级别。但是将级别设置为记录器的效果是什么?这个层次体现在哪里?
如果我将级别更改为INFO 或Logger 或StreamHandler,我会得到相同的控制台输出。
即:
...........
logger.setLevel(logging.INFO)
............
ch.setLevel(logging.DEBUG)
在控制台中提供与
相同的输出...........
logger.setLevel(logging.DEBUG)
............
ch.setLevel(logging.INFO)
【问题讨论】: