1

laravel では、エラー メッセージを変更し、404 および 500 イベントのログを記録したいと考えています。私はroutes.phpのイベントリスナーで404イベントを試しましたが、

Event::listen('404', function()
{
Log::write('404', 'Could not find : '.URL::full());
return Response::error('404');
});

それは私にとってはうまくいきます。エラーメッセージは現在の URL とともにログに記録されます。しかし、500 エラーの場合は、スタックトレースもログに記録したい..「500 - Uncaught Exception: 'exception_message_and_stack_trace'」のようなログ メッセージが必要です。

イベントリスナーでスタックトレース文字列を取得するにはどうすればよいですか? laravelの基本的なことを理解していない場合は申し訳ありません。

4

3 に答える 3

1

404 および 500 イベントには、発生したエラーに関する情報があまりないため、そこでスタック トレースを実際に実行することはできません。これらは基本的に、ユーザーへの公開メッセージのみを目的としており、ユーザーがヒットしてはならないものをヒットする可能性があります。

ロギングには、config/error.php で logger クロージャーを使用する必要があります。クロージャーに独自のロギング ロジックを入力すると、例外オブジェクトにアクセスできます。

于 2012-12-05T14:18:12.977 に答える
0

Laravel フォーラムには、Laravel イベントに関するスティッキー トピックがあります。リストはこちらで確認できます。

于 2012-12-04T10:27:27.713 に答える
0

コードを application/config/error.php に追加してみてください。そのファイルで 'log' を true に設定して、ロギングを有効にします。次に、一番下に、次のように Log::write() への呼び出しを追加します。

    'logger' => function($exception)
    {
            Log::write('error', $exception);
            Log::exception($exception);
    },

これにより、例外が storage/logs/YYYY-MM-DD.log に表示されます。また、データベース テーブルに書き出すか、このセクションを変更して電子メールで送信することもできます。

于 2013-06-06T18:52:10.587 に答える