133

マーカーについて初めて聞いたのは、次の記事を読んでいたときでした。

http://slf4j.org/faq.html

Loggerオブジェクトで使用可能なメソッドを確認しました。

そして見つけたインターフェース:

私が得たより詳細な情報:

しかし、私はまだ混乱しています...使用方法ではなく理由を尋ねたことに注意してください。したがって、これは次の複製ではありません。

UPDATEマーカーを使用する場合、XMLまたは.propertyファイルで構成を行う代わりに、カスタムJavaコードを記述する必要があるようです...

UPDATE 2 http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluatorから

Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN");
logger.error(notifyAdmin,
  "This is a serious an error requiring the admin's attention",
   new Exception("Just testing"));
4

1 に答える 1

135

これは、 「 SLF4J/Logback でマーカーを使用するためのベスト プラクティス」という質問に対する私の回答を焼き直したバージョンです。

マーカーを使用して、単一のログ ステートメントにを付けたり、マークを付けたりできます。これらの色、つまりマーカーをどうするかは、完全にあなた次第です。しかし、マーカーの使い方には2つのパターンが一般的なようです。

  1. トリガー: 一部のアペンダーは、特定のマーカーの存在下でアクションを実行するように指示される可能性があります。たとえば、ログ レベルに関係なくSMTPAppender、ロギング イベントがマーカーでマークされるたびに電子メールを送信するように構成できます。logback ドキュメントのマーカーベースのトリガーをNOTIFY_ADMIN参照してください。ログ レベルとマーカーを組み合わせてトリガーすることもできます。

  2. フィルタリング: マーカーは、特定の重要なログ ステートメントを目立たせるのに非常に役立ちます。たとえば、永続性に関連するすべてのログ (さまざまな複数のクラス ファイル内) を「DB」という色で色付け/マークできます。次に、「DB」でフィルタリングできます。DB でマークされたログ ステートメントを除いて、ロギングを無効にします。詳細については、logback ドキュメントのフィルターに関する章を参照してください (MarkerFilter を検索してください)。マーカーのフィルタリングは、ログバックだけでなく、ログ分析ツールでも実行できることに注意してください。

マーカーが登場する前は、同様の動作を実現するために、1) カスタム レベルを使用する、2) 変更されたロガー名を使用するというオプションがありました。SLF4J API は現在、カスタム レベルをサポートしていません。オプション 2 については、1 つまたは 2 つのロガーを変更する必要がある場合、ロガー名にサフィックス (またはプレフィックス) を付けることができます。関連する構成ファイルが管理できなくなるため、3 つ以上のロガーを「サブクラス化」する必要があるとすぐに、このアプローチは実用的ではなくなります。

単一のマーカーはすでに非常に便利ですが、SLF4J の次のバージョン、つまりバージョン 2.0 では、ログ ステートメントごとに複数のマーカーが許可されます。

于 2013-05-29T18:08:26.593 に答える