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

Python日志仅记录Error级信息,Info级无输出排查求助

问题描述

在Python中使用logging模块时,无法查看Error级别以下的日志。已检查日志流程的所有环节(包括logger级别、handler、logger和handler层面的过滤器),精简代码后功能正常,但实际场景中问题复现。

相关代码

import logging

class DebugConsoleHandler(logging.Handler):
    def emit(self, record):
        print(f"Custom Handler: {record.levelname} - {record.msg}")

log.addHandler(DebugConsoleHandler())

log.error("Initialized llm_route in verifications")
log.error(f"Logger name {log.name}")
log.error("Logging Level %s", log.level)
log.setLevel(logging.NOTSET)
log.error("Logging Level %s", log.level)
log.error("Logging Handlers %s", log.handlers)
log.error("Logging filters %s", log.filters)

for handler in log.handlers:
    log.error(handler.filters)
    # # record = logging.LogRecord("test", level=20, msg="test")
    # handler.emit("Test Message")

log.info(
    f'Received text generation request from user "{get_current_user().name}" '
    f'for challenge ID "{request.json["challenge_id"]}"'
)

log.error(
    f'Received text generation request from user "{get_current_user().name}" '
    f'for challenge ID "{request.json["challenge_id"]}"'
)

现象说明

截图显示日志输出中仅出现Error级别的日志,Info级别的日志未被输出。

排查与解决建议
  • 给自定义Handler显式设置级别:你的DebugConsoleHandler没有设置日志级别,虽然默认是NOTSET,但如果存在父级配置限制,可能会过滤Info日志。添加级别设置:
    handler = DebugConsoleHandler()
    handler.setLevel(logging.INFO)  # 显式允许Info及以上级别
    log.addHandler(handler)
    
  • 关闭日志传播:如果当前logger的propagate为True,父logger的级别或过滤器会影响输出。尝试关闭传播:
    log.propagate = False
    
  • 排查全局日志配置:实际场景中可能有其他代码(比如框架初始化、第三方库)修改了全局logging配置,覆盖了当前logger设置。可以检查logging.root的级别和handler配置,确认是否有全局限制。
  • 验证Info日志内容是否合法:Info日志中的get_current_user().name或request.json["challenge_id"]可能抛出异常,导致日志无法生成。先替换为固定值测试:
    log.info('Received text generation request from user "test_user" for challenge ID "test_challenge"')
    
  • 确认过滤器实际行为:虽然打印了过滤器列表,但过滤器的filter方法可能实际过滤了Info日志。可以临时移除所有过滤器,或者在过滤器中添加调试输出,确认是否拦截了Info级别的LogRecord。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:52:45