如何在Python logging配置文件中禁用urllib3等指定模块日志?
调整已导入模块的日志行为(以urllib3为例)
方法一:直接修改日志配置文件
你可以在现有ini配置中添加针对urllib3的logger配置,指定它的日志级别,具体修改如下:
修改后的完整配置文件
[loggers] keys = root, urllib3 [logger_root] level = DEBUG handlers = root [logger_urllib3] level = WARNING # 可按需设为WARNING/ERROR,屏蔽低级别日志 handlers = root # 复用root的handler,也可单独指定其他handler qualname = urllib3 propagate = 0 # 设为0避免日志向上传播到root导致重复输出 [handlers] keys = root [handler_root] class = StreamHandler level = DEBUG formatter = json [formatters] keys = json [formatter_json] format = %(name)s%(message)s%(asctime)s%(levelname)s%(module)s class = pythonjsonlogger.jsonlogger.JsonFormatter
说明:
- 在
[loggers]的keys里新增urllib3,告知配置文件需要处理该模块的logger [logger_urllib3]中:level设置为目标级别,比如WARNING会屏蔽DEBUG/INFO级日志,ERROR则只保留错误日志qualname必须和目标模块的logger名称完全一致(此处为urllib3)propagate = 0可防止该模块日志被root logger重复处理
方法二:加载配置后在代码中手动调整
如果不想修改配置文件,也可以在调用fileConfig加载配置后,手动获取urllib3的logger并调整级别:
import logging from logging.config import fileConfig # 加载你的日志配置文件 fileConfig('your_log_config.ini') # 获取urllib3的logger并设置级别 urllib3_logger = logging.getLogger('urllib3') urllib3_logger.setLevel(logging.WARNING) # 或logging.ERROR,按需选择 # 可选:关闭日志传播,避免被root logger重复输出 urllib3_logger.propagate = False
两种方法都能实现禁用或提升urllib3日志级别的效果,按需选择即可。
内容的提问来源于stack exchange,提问作者timbmg
相关产品推荐
相关产品推荐

