查看python文档,如果我将记录器级别设置为INFO,它将打印出INFO或更高级别的所有日志。
但是,下面的代码片段仅显示“错误”
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.info("Info")
logger.error("error")
logger.info("info")
输出
error
这可能是什么原因?
答案 0 :(得分:1)
使用logging.basicConfig
设置默认级别和默认处理程序:
import logging
logger = logging.getLogger()
logging.basicConfig(level=logging.INFO)
logger.info("Info")
logger.error("error")
logger.info("info")
打印:
INFO:root:Info
ERROR:root:error
INFO:root:info
logging
模块功能强大但令人困惑。查看文档中的the HOWTO以获得教程。我已经创建了自己的帮助程序功能,该功能记录到stderr和我在my blog上详细介绍过的文件。您可能想使其适应您的需求。
答案 1 :(得分:0)
这种行为的原因是没有定义日志处理程序。 在这种情况下,使用处理程序“logging.lastResort”。 默认情况下,此处理程序为“<_StderrHandler (WARNING)>”。 它记录到标准错误,但仅从“警告”级别开始。
对于您的示例,您可以执行以下操作(登录到标准输出):
import logging
import sys
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler(sys.stdout))
logger.info("info")
输出
info
在 howto 中,您可以找到其他有用的处理程序。