前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Python里抑制requests库的日志消息

在Python里抑制requests库的日志消息

作者头像
julyclyde
发布2023-12-18 15:50:30
1510
发布2023-12-18 15:50:30
举报

我自己经常在自己的脚本开头使用logging.basicConfig(level=logging.DEBUG)初始化logging库,但是随之而来的就是requests会输出大量日志,甚至盖过了我自己的内容。所以我打算抑制requests的日志。

综合搜索的资料,和探索源代码,我发现:

  • 其实requests代码里根本就没有调用任何logging/logger,甚至它还在__init__.py里给“自己的”logger设置了NullHandler
  • docs/api.rst 文档里其实讲了怎么“配置”日志,只是没有“supress”这个词,以至于我没搜到
  • 通过在Format里加上%(name)s,可以发现写日志的其实是urllib3.connectionpool

所以只需要在basicConfig后面加一句

logging.getLogger(“urllib3”).setLevel(logging.WARNING)

就可以抑制这部分日志了。

另外,logging.Logger.manager.loggerDict是个好东西,可以检查当前到底存在哪些logger。通过检查loggerDict[‘urllib3.connectionpool’].propagate发现其为True,其上层也是True,因此,虽然这两层logger一个没handler,一个NullHandler,但是该logger记录的日志消息仍会逐层上传,最终被basicConfig的root logger处理。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档