如何开启Python中所有已加载模块(含依赖)的Debug日志?
启用所有Python模块的Debug日志
方法一:配置根日志器(无需逐个设置模块)
根日志器是所有模块日志实例的父级,将其级别设置为DEBUG后,所有未单独指定级别的子日志器都会继承这个设置,从而输出Debug级别的日志。
示例代码:
import logging logging.basicConfig( level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' )
执行这段代码后,requests、urllib等第三方模块的Debug日志会和你自己的模块日志一起输出。
方法二:遍历所有已注册的日志器(处理特殊情况)
少数模块会手动设置自身日志器的级别,导致根日志器的设置不生效。这种情况下,可以遍历所有已注册的日志器,强制修改它们的级别:
import logging # 先配置根日志器 logging.basicConfig(level=logging.DEBUG) # 遍历所有已注册的日志器并设置级别 for logger_name in logging.Logger.manager.loggerDict: logger = logging.getLogger(logger_name) logger.setLevel(logging.DEBUG) # 给无处理器的日志器添加默认处理器,避免日志无输出 if not logger.handlers: logger.addHandler(logging.StreamHandler())
关键提示
- 全量Debug日志会生成大量数据,建议仅在调试阶段使用,或结合日志文件滚动、过滤规则来控制日志量
- sys、os这类系统模块本身几乎不会输出日志,主要的Debug信息来自requests、urllib等第三方库
内容的提问来源于stack exchange,提问作者pileofrogs
相关产品推荐
相关产品推荐

