2014-02-17 52 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,所以如果當我們轉到下一個版本時,我可能會重複這個改變。