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 に答える