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