PHP で例外をキャッチしないと、error.log
ファイルに役立つエラー メッセージとスタック トレースが表示されます。たとえば、次のように実行すると:
<?php
function foo() {
throw new Exception('Oh no!');
}
foo();
?>
次に、これをログに書き込みます。
[2013 年 3 月 6 日水曜日 10:35:32] [エラー] [クライアント 86.146.145.175] PHP の致命的なエラー: キャッチされていない例外 'Exception' とメッセージ 'Oh no!' in /var/www/test.php:4\nスタック トレース:\n#0 /var/www/test.php(7): foo()\n#1 {main}\n /var/www/ でスロー4 行目の test.php
例外をキャッチしたい場合もありますが、それでもその詳細をログに記録します。私は次のようなものを想像しています:
<?php
function foo() {
throw new Exception('Oh no!');
}
try {
foo();
} catch (Exception $e) {
log_exception($e);
}
?>
wherelog_exception
は、キャッチされなかった例外に対して自動的に書き込まれるものと基本的に同じ形式で何かをエラー ログに書き込みCaught exception
ますPHP Fatal error: Uncaught exception
。
このような例外情報をログに記録したり、文字列にキャプチャしたりする組み込み関数はありますか? 私はtraceback.format_exc()
Pythonに似たものを想像しています。