设置:Python 3.3
我有一个单元测试程序,我想打印出日志消息。虽然我将日志严重性设置为INFO,但Python不会通过此记录器打印任何除WARNING或更高消息之外的任何消息。
以下是我使用的代码:
test_logger = logging.getLogger('DesktopprTester')
print(test_logger.getEffectiveLevel())
test_logger.setLevel(logging.INFO)
print(test_logger.getEffectiveLevel())
test_logger.warning('WARN')
test_logger.info('INFO')
这是输出:
30 <-30 is WARN
20 <-20 is INFO
WARN
它不打印INFO。所以我错过了这个文件中的所有信息声明......我不知道为什么。文档似乎同意我的看法。当我以前使用根记录器,并将级别设置为info时,它将打印它(以及它正在做的所有其他事情)。现在我制作了自己的记录器,它似乎不起作用。请注意,警告级别消息仍然出现,但它们不是我想要看到的。
我在这里缺少什么吗?我觉得有一些明显的答案,我没有看到......
答案 0 :(得分:2)
在python 2中运行代码时,会收到明确的警告:
No handlers could be found for logger "DesktopprTester"
因此,您只需要在记录器中添加处理程序:
test_logger = logging.getLogger('DesktopprTester')
hdlr = logging.StreamHandler()
test_logger.addHandler(hdlr)
警告没有出现在python 3上 - 我不知道为什么