为什么Python的记录器在没有错误的情况下返回错误?

2024-03-29 08:46:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想我不明白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

我疯了吗?我使用的日志根本错误吗?你知道吗


Tags: 函数debuginfostringreturnloggingdef错误
2条回答

您的默认日志记录级别似乎设置为“警告”。使用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'

从模块调用的每个日志函数都会让根日志记录器在相应级别发送请求的消息,因此使用默认配置,您至少应该看到所有警告和更高级别的消息。你知道吗

相关问题 更多 >