11

もしそうなら、どのようにそれを行うことができますか?デフォルトでは、L4 はテキスト ファイルに書き込みます。Monolog はgithubページでデータベースにログを記録できることに気付きました。

4

5 に答える 5

10

そうです、routes.php にすべてを記録するリスナーを作成できます。

Event::listen('laravel.log', function($type,$message)
{
    $log = new Log();
    $log->message = $message;
    $log->type = $type;
    $log->update;
});

あるいは、エラー 400 と 500 のみをログに記録したい場合は、エラー 404 と 500 をリッスンする Routes.php ファイルに Log イベントがあり、このイベント リスナーに独自のコードを記述できます。したがって、Log というモデルが定義されていると仮定すると、

Event::listen('404', function()
{
    $error = "404: " . URL::full();
    Log::error($error);
    $update = new Log();
    $update->error = $error;
    $update->update;
    return Response::error('404');
});

Event::listen('500', function()
{
    Log::error($error);
    $update = new Log();
    $update->error = $error;
    $update->update;
    return Response::error('500');
});
于 2013-03-25T10:34:11.510 に答える
7

見出しをさらに読むとわかるように、Monolog は Redis、MongoDB、および CouchDB への書き込みをネイティブにサポートしています。これら 3 つはすべて、かなり書き込みが多い (Redis の場合は非常に書き込みが多い) ユースケースをサポートしています。MySQL にログを記録することは、世界で最も優れたアイデアではないため、MySQL は存在しません。

ただし、本当にやりたい場合は、独自のハンドラーの作成に関するドキュメントを確認できます。このドキュメントでは、PDO ハンドラーを作成して使用し、SQL データベースに書き込む方法について説明しています: https://github.com/Seldaek/monolog/blob /master/doc/extending.md - 私はまだそれは悪い考えだと思いますが、おそらくユースケースはそれを正当化します.

于 2013-03-24T11:32:34.033 に答える
2

プロジェクトで同じ要求があったため、Monolog のハンドラーを作成して、ログ出力を MySQL に書き込みました。これは MIT ライセンスの下でリリースされ、composerを通じて、またはGitHubで直接入手できます。試してみる価値があるかもしれません。

于 2015-02-17T09:59:40.490 に答える