2012-08-28 29 views
0

我試圖爲我的CodeIgniter應用程序構建一個錯誤處理服務,並且除解析錯誤外,所有內容都按預期記錄。例如,CodeIgniter解析錯誤顯示但未寫入日誌

Parse error: syntax error, unexpected T_VARIABLE in /var/www/foo/web/app/controllers/foo.php

...將輸出並獲得通過的Apache E_ALL下登錄。所有其他(非解析)錯誤都會傳遞到我在/core/MY_Exceptions.php中編寫的log_exception擴展,並在PHP的日誌中顯示PHP 5.2.17和5.3.6(MAMP)。解析錯誤將顯示在Apache的本機錯誤日誌中,但不會顯示在CodeIgniter的日誌中 - 它們似乎完全錯過了CodeIgniter。

如何確保CI解析錯誤?我錯過了明顯的東西嗎?

回答

1

這可能會幫助您:Why is codeigniter not logging error!

如果網頁失敗,因爲一個解析錯誤的加載,然後它會 不會執行

error_reporting(E_ALL); 

,所以你的腳本將永遠知道輸出錯誤。編輯php.ini 文件,以確保您有:

error_reporting = E_ALL 
error_log = "/path/to/some/apache/writable/file" 

希望這有助於。

+0

謝謝!這是有道理的,而且它似乎也沒有辦法在應用程序級別捕捉到錯誤,如果它從不首先運行。這是一個無賴。 –

+0

是的,它打破了流程,使其難以登錄。 – AlphaMale