call_user_func_array()中的日志记录错误

时间:2012-05-24 18:00:58

标签: php command-line-interface

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

1 个答案:

答案 0 :(得分:2)

你无法发现致命的错误。它是致命的,所以你的脚本会死掉,你无能为力。

实际上,通过register_shutdown_handler注册的功能仍然会执行但你无法获得回溯等等,所以这很无用。

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