如何将信息级别打印到标准输出?

时间:2013-11-14 07:45:11

标签: python

如何将信息级别打印到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

为什么?

2 个答案:

答案 0 :(得分:4)

代码设置level of the handler,而不是logger

替换以下行:

ch.setLevel(logging.INFO)

使用:

root.setLevel(logging.INFO)

答案 1 :(得分:0)

要提供额外的输入,

当我们将消息传递给记录器时,如果记录器允许记录级别,则首先检查,如果允许,则将其传递给Handler1 ... Handler2,并应用相同的逻辑。