PHPで例外が発生しない場合は、error.log
ファイルにスタックトレースを含む有用なエラーメッセージが表示されます。例えば、私が実行した場合: スタックトレースでキャッチされた例外
<?php
function foo() {
throw new Exception('Oh no!');
}
foo();
?>
は、私は、これが私のログに書き込まれ得る:
[Wed Mar 06 10:35:32 2013] [error] [client 86.146.145.175] PHP Fatal error: Uncaught exception 'Exception' with message 'Oh no!' in /var/www/test.php:4\nStack trace:\n#0 /var/www/test.php(7): foo()\n#1 {main}\n thrown in /var/www/test.php on line 4
は時々私は例外をキャッチするが、まだその詳細をログに記録したいと思います。私のようなものを想像しています:log_exception
は自動的に捕捉されない例外のために書き込まれますどのように基本的に同じ形式で、エラーログに何かを書き込みます
<?php
function foo() {
throw new Exception('Oh no!');
}
try {
foo();
} catch (Exception $e) {
log_exception($e);
}
?>
- 代わりPHP Fatal error: Uncaught exception
のCaught exception
を持つ以外にも、おそらく、文字通り同じ。
このような例外情報を記録するか、文字列に取り込む組み込み関数はありますか?私はPythonでtraceback.format_exc()
に類似した何かを想像しています。
それを理解するための非常に有用な答え。 – kta