我有一個Yii
應用程序與許多並行控制檯作業寫入一個數據庫。由於高併發性有時我會遇到MySQL死鎖錯誤。有時候這些可能太多了。 console.log
文件變得太大,並且轉化爲更多費用。我想防止記錄特定的CDbException
實例,或者至少完全禁止它們(我正在處理異常並可以從那裏生成更緊湊的日誌語句)。記錄到Yii console.log更少的條目
YII__DEBUG
已經被註釋掉。
任何人都可以請幫我弄清楚如何做到這一點?
非常感謝!
問候。
我有一個Yii
應用程序與許多並行控制檯作業寫入一個數據庫。由於高併發性有時我會遇到MySQL死鎖錯誤。有時候這些可能太多了。 console.log
文件變得太大,並且轉化爲更多費用。我想防止記錄特定的CDbException
實例,或者至少完全禁止它們(我正在處理異常並可以從那裏生成更緊湊的日誌語句)。記錄到Yii console.log更少的條目
YII__DEBUG
已經被註釋掉。
任何人都可以請幫我弄清楚如何做到這一點?
非常感謝!
問候。
我決定修改記錄失敗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,所以如果當我們轉到下一個版本時,我可能會重複這個改變。
你怎麼記錄?你在用什麼課程? – tinybyte
感謝Harikrishnan的迴應。它是日誌記錄失敗的CDbCommand.php,它包含失敗的SQL(搜索yii/framework/db/CDbCommand.php中的「SQL語句...」)。 – user3318360