Python Logger不尊重日志级别

时间:2014-01-19 19:40:07

标签: python logging

设置: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时,它将打印它(以及它正在做的所有其他事情)。现在我制作了自己的记录器,它似乎不起作用。请注意,警告级别消息仍然出现,但它们不是我想要看到的。

我在这里缺少什么吗?我觉得有一些明显的答案,我没有看到......

1 个答案:

答案 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上 - 我不知道为什么