如何打印python记录器信息级别

时间:2019-03-05 19:28:32

标签: python-3.7

我想在命令行上运行python3.7脚本,并像logger.warning()一样在标准输出上显示logger.info()消息。

这是我的代码:

import logging
logger = logging.getLogger(__name__)
print(logger.isEnabledFor(logging.INFO))
logger.setLevel(logging.INFO)
print(logger.isEnabledFor(logging.INFO))
logger.info('my info message')
logger.warn('my warning message')

预期输出:

False
True
my info message
my warning message

实际输出:

False
True
my warning message

示例:https://repl.it/repls/UnknownWideeyedPhase

2 个答案:

答案 0 :(得分:0)

在上面的示例中,您需要定义一个Stream-Handler来告诉记录器将日志发送到哪里。如果要将它们发送到stdout(控制台输出),只需添加

import sys
logging.basicConfig(stream=sys.stdout)

有关日志记录配置的更多详细信息,我建议阅读文档documentation

P.S。您应该使用logger.warning,因为logger.warn已过时

答案 1 :(得分:0)

此问题已在Logging setLevel is being ignored

中解决

但是遵循以下决议:

import logging
logger = logging.getLogger(__name__)
print(logger.isEnabledFor(logging.INFO))
logging.basicConfig(level=logging.INFO, format='%(message)s')
print(logger.isEnabledFor(logging.INFO))
logger.info('my info message')
logger.warning('my warning message')