将更少的条目记录到Yii console.log中

时间:2014-02-17 09:17:17

标签: mysql yii deadlock

我有一个Yii应用程序,其中有许多并发控制台作业写入一个数据库。由于高并发性,有时我会遇到MySQL死锁错误。有时这些可能太多了。 console.log文件变得太大,转化为更多费用。

我想阻止特定CDbException个实例的记录,或者至少完全禁止它们(我正在处理异常并可以从那里生成更紧凑的日志语句)。

YII__DEBUG已被注释掉。

任何人都可以帮我弄清楚如何做到这一点吗?

非常感谢!!

问候。

1 个答案:

答案 0 :(得分:0)

我决定修改记录失败的SQL的yii / framwework / db / CDbCommand.php中的日志语句。我将其转换为跟踪声明:

Yii :: trace(Yii :: t('yii','CDbCommand :: {method}()失败:{error}。执行的SQL语句是:{sql}。',array('{method} '=> $ method,'{error}'=> $ message,'{sql}'=> $ this-> getText()。$ par)),CLogger :: LEVEL_ERROR,'system.db。 CDbCommand');

我无论如何都要抓住异常并记录一个更紧凑的句子版本,所以我可以这样做。

这是我能找到的最简单的方法。我们不经常升级Yii,所以如果我们进入下一个版本,我可能会重复更改。