1. ホーム
  2. java

[解決済み] Java Loggingフレームワークにおけるマーカーとは何か、マーカーを使用する理由とは?

2022-06-29 04:18:32

質問

マーカーについて初めて知ったのは、本を読んでいるときでした。

http://slf4j.org/faq.html

の利用可能なメソッドを確認しました。 ロガー オブジェクトの利用可能なメソッドを確認しました。

といったインターフェイスが見つかりました。

から得たより詳細な情報。

が、私はまだ混乱しています... 私が尋ねたことに注意してください なぜ ではなく どのように を使うので、これは重複していません。

アップデイト マーカーを使う場合は XML または .プロパティ ファイル...

アップデイト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"));

どのように解決するのですか?

これは焼き直しです 私の答え という質問に対する答えです。 SLF4J/LogbackでMarkerを使用するためのベストプラクティス "です。

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

  1. トリガ : あるアペンダーは、あるマーカーが存在するときにアクションを起こすように指示されるかもしれません。例えば SMTPAppender でマークされたロギングイベントが発生するたびに、電子メールを送るように設定することができます。 NOTIFY_ADMIN マーカーが付けられると、ログレベルに関係なくメールを送るように設定できます。参照 マーカベースのトリガ を参照してください。また、ログレベルとマーカーを組み合わせてトリガーをかけることもできます。

  2. フィルタリング : マーカーは、特定の貴重なログ ステートメントを目立たせるために非常に便利です。 例えば、(様々な複数のクラスファイル内の)すべての永続性関連ログに "DB" という色を付けることができます。そして、"DB" をフィルタリングして、DBでマークされたログステートメント以外のログを無効化することができます。詳細は の章を参照してください。 を参照してください(MarkerFilter を検索してください)。なお、マーカーに対するフィルタリングは、logbackだけでなく、ログ解析ツールでも実行可能です。

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

単一のマーカーがすでに非常に有用であるにもかかわらず、SLF4Jの次のバージョン、すなわちバージョン2.0では、ログステートメントごとに複数のマーカーを使用できるようになります。