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

Yii框架使用FileTarget如何避免error、warning日志重复记录?

机制说明

这是Yii日志组件的默认设计,并非异常问题。
Yii的日志分发逻辑为:所有已注册的日志target会独立校验当前日志是否匹配自身的categories、levels、except规则,只要匹配就会写入对应存储。只要一条日志同时符合多个target的匹配规则,就会出现重复写入的情况。

你遇到的仅warning、error级别重复写入,info级别不重复的现象,是因为默认app.log对应的target默认配置的levels仅包含warning、error,没有开启info级别捕获,所以info级别的import.category日志只会被你自定义的target匹配,不会写入app.log。

解决方法

修改默认app.log对应的FileTarget配置,添加except参数排除你的自定义日志类别即可:

// 找到配置文件中写app.log的日志target配置,新增except项
[
    'class' => yii\log\FileTarget::class,
    'logFile' => '@runtime/logs/app.log',
    'levels' => ['warning', 'error'],
    'except' => ['import.category'], // 加入该行后,该类别的日志不会再写入app.log
    // 其余原有配置保持不变
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:09:04