我想在命令行上运行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
答案 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')