2017-07-25 87 views
0

目前我的腳本能夠在瀏覽器上顯示PDO異常,但它不記錄到錯誤文件。我寧願使用display_errors關閉瀏覽器錯誤消息,並使用error_log代替將其記錄到文件。我不知道是否有可能,或者是否需要編寫一些自定義處理程序,或者是否被框架覆蓋。這是我的虛擬主機中的日誌配置。請注意,它會記錄所有其他錯誤消息,包括通知。但它不會記錄PDO異常。有任何想法嗎?記錄PDO異常error_reporting和error_log

我認爲你可以忽略虛擬主機配置的display_errors的值。

php_admin_flag log_errors on 
    php_admin_flag display_errors on 
    php_admin_value error_reporting 30719 
    php_admin_value error_log "/....PATH/php.error.log" 

回答

0

事實證明,我需要重寫獨立於錯誤處理程序的異常處理程序。所以我需要將異常轉發給錯誤處理程序。理論上應該實施以下內容。

<?php 
function exception_handler($exception) { 
    echo "Uncaught exception: " , $exception->getMessage(), "\n"; 
    error_log(.....$exception->getMessage().....); //Yay it goes to my file now 
} 

set_exception_handler('exception_handler'); 

throw new Exception('Uncaught Exception'); 
echo "Not Executed\n"; 
?> 

Research further here