2016-12-12 3 views
1

Monologはexclude 404 errors from the logへの道を提供しますが、それらを完全に抑止するのではなくカスタマイズしたいのですが?Symfony/Monolog:404の見つからない例外に関するログの形式をカスタマイズする方法

だから、より別の何かを示す:アプリ/ logsディレクトリ内のログ生活について話していると仮定すると

[2016-12-12 10:41:01] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /non-existing-route"" at /myproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php line 125 {"exception":"[object] (Symfony\Component\HttpKernel\Exception\NotFoundHttpException(code: 0): No route found for \"GET /non-existing-route\" at /myproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php:125, Symfony\Component\Routing\Exception\ResourceNotFoundException(code: 0): at /myproject/var/cache/dev/appDevDebugProjectContainerUrlMatcher.php:1181)"} []

+0

ログファイルに記録される方法を意味しますか? – BentCoder

答えて

1

可能な解決策は、ログプロセッサを使用することです。

詳細なドキュメントは、プロセス内で次にHow to Add extra Data to Log Messages via a Processor

であるかNotFoundHttpExceptionを検出し、人間が読めるメッセージに置き換えます。

+0

これはまさに私が探していたものです。ありがとう – ShinDarth

1

を。もしそうなら、私はこれをかなり簡単に行うことができます。

  1. カスタムロガーと関連付けられたログフォーマッタを作成します。例:Creating a custom monolog logger and formatter in symfony

  2. 私は、カスタムイベントリスナ(例:Triggering redirect in event listener with onKernelException when 404 NotFoundHttpException occurs)でNotFoundHttpException例外をキャッチだろうと私はステップ1

ノートで作成した私のカスタムロガーでそれをログに記録:カスタムロガー上記のステップ1でコントローラに注入される。あなたのケースでは、あなたのイベントリスナーにそれを注入してください。

+0

ありがとう@BentCoder私はそれに取り組んでいるが、今私は新しいカスタムログと古いデフォルトの両方を取得しています。どのように私は古いものを抑制することができますか? – ShinDarth

+0

私はそれを試したことはありませんでしたが、確かにそれは簡単ですので、この[ログから404エラーを除外するMonologを設定する方法](http://symfony.com/doc/current/logging/monolog_regex_based_excludes.html)または単に[検索それについては(https://www.google.com.tr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=symfony%20prevent%20logging%20404)。 – BentCoder

+0

はい、私は何をしようとしていますが、明らかに動作しませんが、私はさらに確認します。ありがとう – ShinDarth

関連する問題