如何将信息级别打印到stdout?
import logging
import sys
root = logging.getLogger()
ch = logging.StreamHandler(sys.stdout)
ch.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
root.addHandler(ch)
root.info('test1')
root.error('test')
仅产生错误级别:
2013-11-14 11:44:19,675 - root - ERROR - test
为什么?
答案 0 :(得分:4)
代码设置level of the handler,而不是logger。
替换以下行:
ch.setLevel(logging.INFO)
使用:
root.setLevel(logging.INFO)
答案 1 :(得分:0)
要提供额外的输入,
当我们将消息传递给记录器时,如果记录器允许记录级别,则首先检查,如果允许,则将其传递给Handler1 ... Handler2,并应用相同的逻辑。