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

Python与Kedro日志配置问题:控制台仅输出INFO、文件存DEBUG

问题原因

Python日志模块默认会将子logger的日志传播到其父级logger(包括root logger)。你的DataSets logger没有禁用传播,所以DEBUG日志在被debug_file_handler处理后,还会传递给root logger,而root的rich handler负责控制台输出,最终导致DEBUG消息同时出现在控制台和文件中。

解决方案

在logging.yml的DataSets logger配置中添加propagate: False,关闭日志传播:

loggers:
  kedro:
    level: INFO

  kedro_workbench:
    level: INFO

  DataSets:
    level: DEBUG
    handlers: [debug_file_handler]
    propagate: False  # 新增这一行,禁止日志向上传播

root:
  handlers: [rich, info_file_handler, error_file_handler]
验证逻辑
  • 添加propagate: False后,DataSets的DEBUG日志只会被指定的debug_file_handler处理,不会再传递给父级logger(包括root)。
  • root logger的rich handler只会处理来自其他logger(如kedro、kedro_workbench)的INFO及以上级别日志,不会再收到DataSets的DEBUG日志,从而实现你要的效果:INFO输出到控制台,DEBUG仅写入文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:09:50