2
我怎麼能記錄一個致命錯誤call_user_func_array內出現? 它在作爲守護程序運行的CLI腳本中。 我想記錄發生錯誤的時間,但總是會拋出錯誤消息。日誌記錄錯誤()
東西,我試過,但不能使它工作:
try {call_user_func_array()} catch (Exception $e) {do_log}
或
ob_start();
try {call_user_func_array()} catch (Exception $e) {do_log}
或
register_shutdown_function('shutdownFunction');
或
ini_set('error_log',$baseDir.'/Jobque_error.log');
fclose(STDIN);
fclose(STDOUT);
fclose(STDERR);
$STDIN = fopen('/dev/null', 'r');
$STDOUT = fopen($baseDir.'/Jobque_application.log', 'ab');
$STDERR = fopen($baseDir.'/Jobque_daemon.log', 'ab');
生命的傷心事。 – SunWuKung
我知道這是一個古老的線索,但是,您*可以*發現致命錯誤。在傳遞給'register_shutdown_handler()'的函數中使用'error_get_last()'。 'error_get_last()'給出了一個關聯的錯誤細節數組。如果它的'type'屬性等於'E_ERROR',那是一個致命的錯誤,被捕獲。這從PHP 5.2開始工作。 – curtisdf