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

Python日志第二次调用run函数时无Info日志输出的原因排查

问题原因解析

第二次调用run函数无Info日志输出的核心原因,是Python logging模块中fileConfig()方法的默认行为:

  • 首次调用fileConfig()时,会根据配置文件完成日志系统的初始化,包括创建对应名称的日志器、设置日志级别、绑定处理器等操作。
  • fileConfig()的默认参数disable_existing_loggers=True,该参数的作用是:每次调用fileConfig()时,自动禁用所有在调用前已存在的日志器。
  • 第二次调用run函数时,logging.getLogger(__name__)获取的是第一次调用时就已经创建的日志器实例,此时执行fileConfig()会触发默认的禁用逻辑,导致该日志器无法输出任何日志。

可行的解决方式

  • 方式一:调用fileConfig()时显式关闭禁用已存在日志器的逻辑:
    logging.config.fileConfig(os.path.join(here, "conf_log.ini"), disable_existing_loggers=False)
    
    这样第二次调用时不会禁用之前创建的日志器,日志就能正常输出。
  • 方式二:将日志配置的初始化逻辑移到run函数外部,在程序启动时仅执行一次,避免重复调用fileConfig()带来的冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:24:42