You need to enable JavaScript to run this app. Python使用logging模块时debug、info级别日志无输出原因排查
优惠活动
大模型
产品
解决方案
定价
更多

Python使用logging模块时debug、info级别日志无输出原因排查

Python logging debug/info级别无输出问题排查

核心原因

Python logging模块的根日志器默认输出级别为WARNING,日志优先级从低到高为DEBUG < INFO < WARNING < ERROR < CRITICAL,所有优先级低于WARNING的DEBUG、INFO级别日志会被直接过滤,不会触发任何输出。
直接调用模块级的logging.debug()走的就是默认根日志器的逻辑,因此不会有输出。代码里的print语句能正常运行,是因为print没有日志级别的过滤逻辑,和logging的运行规则完全独立。

修复方案

  • 方案1:全局调整根日志器级别
    在所有logging调用前(比如import logging之后立刻添加配置)执行logging.basicConfig指定输出级别:
import logging
# 必须在第一条logging调用前执行才会生效
logging.basicConfig(level=logging.DEBUG, format="%(levelname)s: %(message)s")

如果之前已经执行过logging相关调用,需要先清空原有处理器再重新配置:

logging.root.handlers.clear()
logging.basicConfig(level=logging.DEBUG)
  • 方案2:使用独立命名日志器(不影响全局配置)
    如果不想修改全局默认日志的行为,可以单独创建独立日志器并配置它的级别和输出规则:
import logging

# 创建专属测试日志器
test_logger = logging.getLogger("varargs_demo")
# 设置允许输出的最低日志级别
test_logger.setLevel(logging.DEBUG)
# 配置控制台输出通道
console_handler = logging.StreamHandler()
test_logger.addHandler(console_handler)

# 后续用该日志器输出替代模块级的logging调用
test_logger.debug('called before __init__')

内容的提问来源于stack exchange,提问作者Amrmsmb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.03 01:45:10