我想在命令行上运行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
在上面的示例中,您需要定义一个Stream-Handler来告诉记录器将日志发送到的位置。如果要将它们发送到stdout(控制台输出),只需添加即可
import sys
logging.basicConfig(stream=sys.stdout)
有关日志记录配置的更多详细信息,我建议阅读文档documentation
附:你应该使用logger.warning
,因为logger.warn
已被弃用
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')