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

使用单个Logger时出现重复打印问题,如何解决?

问题解决:仅打印指定日志内容

出现两行输出的原因是:Colab环境中Python的根日志记录器(root logger)默认已配置处理器,当自定义日志记录器未关闭传播性时,日志信息会同时传递给自定义处理器和根日志处理器,导致重复输出第二行带INFO:__main__:的内容。

解决方法是在配置日志记录器时关闭其传播性:

from logging import getLogger, INFO, StreamHandler, FileHandler, Formatter

log_file = 'test.txt'
logger = getLogger(__name__)
logger.setLevel(INFO)
# 关闭日志传播,避免传递给根日志处理器
logger.propagate = False
handler1 = StreamHandler()
handler1.setFormatter(Formatter('%(message)s'))
handler2 = FileHandler(filename=f'{log_file}.log')
handler2.setFormatter(Formatter('%(message)s'))
logger.addHandler(handler1)
logger.addHandler(handler2)

logger.info("HELLO")

运行后只会输出一行HELLO,同时日志内容也会写入test.txt.log文件中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:21:02