Python log 阻止其他类打印?

2021-02-21 15:48:41 +08:00
 fangwenxue
DEFAULT_FORMATTER = '%(asctime)s[%(filename)s:%(lineno)d][%(levelname)s]:%(message)s'
logging.basicConfig(format=DEFAULT_FORMATTER, level=logging.INFO)

1830 次点击
所在节点    Python
4 条回复
Rhilip
2021-02-21 16:00:37 +08:00
把对应 logger 的等级提高,例如可以通过如下方法阻止 requests 模块的 log 打印

```
logging.getLogger("urllib3").setLevel(logging.WARNING)
logging.getLogger("requests").setLevel(logging.WARNING)
```
no1xsyzy
2021-02-21 16:08:58 +08:00
单独配置 handler,参考 logging 库文档和 HOWTOs 的一篇
chenqh
2021-02-21 16:30:54 +08:00
应该是你设置了 root logger, 其他日志 log 的时候, propogate 导致的,
frostming
2021-02-23 12:52:24 +08:00
不要用 basicConfig 去污染其它 logger,而应该用自己的 Logger:

logger = logging.getLogger("myapp")
logger.setLevel(logging.INFO)
...

这跟全局依赖和虚拟环境的思想是类似的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/754851

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX