gpt4 book ai didi

python - 为什么我会收到 "unwanted"日志条目?

转载 作者:太空宇宙 更新时间:2023-11-04 10:05:58 25 4
gpt4 key购买 nike

我开始研究 Python 3.5logging 包。我在 main 文件中设置了这两个命令来登录

import logging
logging.basicConfig(filename=r'fractal.log', level=logging.DEBUG)

另外我插入

import logging

在另一个模块中。我想要的所有日志条目都正确显示在日志文件中,但除了我得到的这两个日志条目之外,它们不是我的日志代码生成的 AFAIK:

DEBUG:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): ichart.finance.yahoo.com
DEBUG:requests.packages.urllib3.connectionpool:http://ichart.finance.yahoo.com:80 "GET /table.csv?d=11&b=1&e=6&s=%5EIRX&g=d&c=1900&a=0&f=2016&ignore=.csv HTTP/1.1" 200 None

这些日志条目显然不是在 main 模块中生成的。此外,当我将日志记录级别设置为 INFO 时,它们不会显示。

有谁知道我为什么会收到这些日志条目?它们是我的代码存在问题的证据吗?

最佳答案

这是因为您正在设置 root logger 的级别,requests 模块将所有日志记录委托(delegate)给它。您可以通过显式关闭 requests 记录器来解决此问题:

logging.getLogger('requests').setLevel(logging.ERROR)

这将使来自 requests 的所有 DEBUG 级消息静音。


或者,您可以使用自己的记录器而不是依赖根记录器,有多种方法可以做到这一点(例如,可以使用 logging.config.dictConfig),但您可以轻松地手动执行此操作, 类似以下内容:

import logging
logger = logging.getLogger(__name__)

logger.addHandler(logging.FileHandler('fractal.log'))
logger.setLevel(logging.DEBUG)

关于python - 为什么我会收到 "unwanted"日志条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40999203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com