为什么没有错误的Python记录仪会返回错误?

时间:2018-09-19 01:18:17

标签: python python-3.x logging

我认为我不了解Python的日志记录库如何工作。我有一个简单的功能:

 def all_caps(_string):

    logging.debug("debug") 
    logging.info("info") 
    logging.warning("warning") 
    logging.error("error")
    logging.critical("critical")

    return _string.upper()

根据我对教程的了解,如果我使用不产生任何错误的输入(例如all_caps("hello"))运行此函数,则应该看到输出:

DEBUG:root:debug
INFO:root:info

但是,我看到的恰恰相反:

WARNING:root:warning
ERROR:root:error
CRITICAL:root:critical
HELLO

我疯了吗?我使用的日志记录根本上是错误的吗?

2 个答案:

答案 0 :(得分:2)

您从模块调用的每个日志记录功能将使根记录器以相应的级别发送请求的消息,因此,使用默认配置,您应该至少看到所有 WARN的消息甚至更高

答案 1 :(得分:0)

您的默认日志记录级别似乎设置为“警告”。使用logging.basicConfig将其重置以得到所需的结果。

>>> import logging
>>> logging.basicConfig(level=logging.DEBUG)
>>> def all_caps(_string):
...     logging.debug("debug")
...     logging.info("info")
...     logging.warning("warning")
...     logging.error("error")
...     logging.critical("critical")
...
...     return _string.upper()
...
>>> all_caps("hello")
DEBUG:root:debug
INFO:root:info
WARNING:root:warning
ERROR:root:error
CRITICAL:root:critical
'HELLO'