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

问题描述 投票:0回答:2

我想在命令行上运行python3.7脚本,并且logger.info()消息以与logger.warning()相同的方式显示在stdout上。

这是我的代码:

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

python-3.7
2个回答
0
投票

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

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

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

附:你应该使用logger.warning,因为logger.warn已被弃用


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')
© www.soinside.com 2019 - 2024. All rights reserved.