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

Python logging:未单独配置的logger为何未复用root logger输出日志

故障原因与修复方案

核心原因

  • 配置字段拼写错误:配置中所有propogate字段拼写错误,正确字段名为propagate,错误拼写会导致日志向上传播规则不生效。
  • disable_existing_loggers配置逻辑问题:disable_existing_loggers: true配置会在加载配置时,禁用所有已经完成初始化、且未在配置loggers节点中明确声明的logger实例。如果logger = logging.getLogger(__name__)执行在dictConfig加载配置之前,对应logger会被直接禁用,日志既不会主动输出,也不会传递给root logger处理。
  • 外设依赖异常:如果192.168.0.100的514端口未开启syslog接收服务、网络不通,同时日志文件存放路径无写入权限,也会导致两类handler都无法输出日志。

修复步骤

  1. 把配置中所有的propogate修正为propagate
  2. 将disable_existing_loggers改为false,或者调整代码顺序,保证所有getLogger操作都在配置加载完成之后执行
  3. 调试阶段可临时将root的handlers仅保留rotating_file,排除syslog连通性的干扰,同时检查日志文件所在目录的写入权限
  4. 读取yaml配置时显式指定编码,避免跨环境编码解析异常:
log_config = yaml.safe_load(open('logger-cfg.yml', encoding='utf-8'))
logging.config.dictConfig(log_config)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:36:03