You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python logging配置DEBUG级别后不输出DEBUG、INFO日志如何解决

问题原因

  • 你代码中调用日志输出的logger对象未进行显式配置,Python logging模块默认创建的日志器级别为WARNING,只有级别大于等于WARNING的日志才会被处理。
  • 你通过logging.basicConfig设置的是root根日志器的级别和输出规则,如果你使用自定义的logger实例,它本身的级别限制会先过滤日志,低于WARNING的DEBUG、INFO日志在到达根日志器的处理器之前就会被丢弃,自然不会写入日志文件。
  • 额外注意:logging.basicConfig仅在第一次调用时生效,如果在执行该配置前已经有过任何日志输出操作,配置也会失效。

解决方案

方案1:直接使用根日志器调用输出

把所有logger.xxx的调用改为logging.xxx,直接使用根日志器,你配置的规则就会直接生效:

import logging

logging.basicConfig(filename='rb-log.log', 
                    format='%(process)d-%(asctime)s-%(levelname)s-%(message)s',
                    level=logging.DEBUG)

# 改用logging顶层方法调用
logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

方案2:显式配置自定义日志器的级别

如果需要使用自定义logger实例,显式获取实例后设置其级别为DEBUG即可:

import logging

logging.basicConfig(filename='rb-log.log', 
                    format='%(process)d-%(asctime)s-%(levelname)s-%(message)s',
                    level=logging.DEBUG)

# 显式获取日志器实例并设置级别
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:24:05