Python:如何抑制来自第三方库的日志记录语句?

标签 python logging

<分区>

我的日志设置看起来像

import requests
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger('BBProposalGenerator')

当我运行它时,我得到的日志为

INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): localhost
INFO:BBProposalGenerator:created proposal: 763099d5-3c8a-47bc-8be8-b71a593c36ac
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): localhost
INFO:BBProposalGenerator:added offer with cubeValueId: f23f801f-7066-49a2-9f1b-1f8c64576a03
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): localhost
INFO:BBProposalGenerator:evaluated proposal: 763099d5-3c8a-47bc-8be8-b71a593c36ac

如何抑制来自requests 包的日志语句?这样我只能看到我的代码中的日志

INFO:BBProposalGenerator:created proposal: 763099d5-3c8a-47bc-8be8-b71a593c36ac
INFO:BBProposalGenerator:added offer with cubeValueId: f23f801f-7066-49a2-9f1b-1f8c64576a03
INFO:BBProposalGenerator:evaluated proposal: 763099d5-3c8a-47bc-8be8-b71a593c36ac

谢谢

最佳答案

您使用 logging.INFO 级别调用了 basicConfig(),这将根记录器的有效级别设置为 INFO,并且所有没有明确设置级别的后代记录器。这包括 requests 记录器,并解释了您获得这些结果的原因。

相反,你可以这样做

logging.basicConfig()

这会将级别保留为默认值 WARNING,但会添加一个处理程序,将日志消息输出到控制台。然后,将记录器的级别设置为 INFO:

logger = logging.getLogger('BBProposalGenerator')
logger.setLevel(logging.INFO)

现在,INFO 和记录到记录器 BBProposalGenerator 或其任何后代的严重事件将被打印,但是根记录器(和它的其他后代,例如requests.XXX) 将保持在 WARNING 级别并且仅显示 WARNING 或更高级别的消息。

当然,您可以在 basicConfig() 调用中指定更高级别 - 如果您指定了 ERROR,例如,您只会看到 ERROR 或来自所有其他记录器的更高版本,但来自 BBProposalGenerator 及其后代的 INFO 或更高版本。

关于Python:如何抑制来自第三方库的日志记录语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21944445/

相关文章:

java - 每次程序重复时,我的 Java 记录器都会创建一个新的日志文件

c++ - 使用 Log4cxx 记录到 Windows 事件

python - 从字典生成 pandas 数据框,其值是不同数量的字典列表

python - Django - user_passes_test 身份验证装饰器 - 'bool' 对象不可调用

python - 如何设置扭曲的日志记录级别?

jsf - 在基于 JSF 的应用程序中捕获并记录/通知未处理的异常

python - 我如何在 iPython 0.12 中自动启用日志记录 *with timestamps*?

Python - 解压两个索引数据框

python - 将其悬停在 tkinter 中时如何更改 ttk 按钮的背景和前景

python - Chaco Legend 中的自定义标签