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

Python使用logging模块生成日志文件报错找不到文件是什么原因?

Python logging模块多次调用basicConfig失效的原因

logging.basicConfig() 是用于快速配置根日志记录器的工具方法,它的核心设计规则是:仅在根日志记录器尚未绑定任何日志处理器(Handler)时,调用才会生效,否则会直接静默忽略。

错误代码的执行逻辑如下:

  1. 第一次调用logging.basicConfig(level=logging.DEBUG)时,根日志记录器无任何处理器,因此调用生效,默认给根日志器绑定了一个输出到控制台的StreamHandler,并设置日志级别为DEBUG。
  2. 第二次调用带filename参数的logging.basicConfig()时,根日志器已经存在StreamHandler,因此这次调用被直接忽略,不会创建my_app.log文件,也不会绑定对应的文件处理器。
  3. 后续logging.debug的内容只会输出到控制台,不会写入文件,my_app.log始终未被创建,因此执行open('my_app.log', 'r')时抛出FileNotFoundError。

额外注意事项

  • 所有日志基础配置必须合并到第一次logging.basicConfig()调用中才能生效,不能拆分多次调用
  • 如果运行过程中需要动态修改日志配置,不能依赖basicConfig(),需要手动移除根日志器已有处理器后,再新增对应配置的处理器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 04:03:03