3

如何记录 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');
4

1 回答 1

2

您无法捕获致命错误。这是致命的,所以你的脚本死了,你无能为力。

实际上,通过注册的函数register_shutdown_handler仍然会执行,但你无法获得回溯等,所以这没什么用。

致命错误的唯一可能记录是通过log_errorsphp.ini 设置。

于 2012-05-24T18:07:25.783 回答