2014-02-17 26 views
0

我有一个Yii应用程序与许多并行控制台作业写入一个数据库。由于高并发性有时我会遇到MySQL死锁错误。有时候这些可能太多了。 console.log文件变得太大,并且转化为更多费用。我想防止记录特定的CDbException实例,或者至少完全禁止它们(我正在处理异常并可以从那里生成更紧凑的日志语句)。记录到Yii console.log更少的条目

YII__DEBUG已经被注释掉。

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

非常感谢!

问候。

+0

你怎么记录?你在用什么课程? – tinybyte

+0

感谢Harikrishnan的回应。它是日志记录失败的CDbCommand.php,它包含失败的SQL(搜索yii/framework/db/CDbCommand.php中的“SQL语句...”)。 – user3318360

回答

0

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

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

我无论如何捕捉异常并记录一个更紧凑的句子版本,所以我可以做到这一点。

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