web-dev-qa-db-ja.com

Java Logging frameworksのマーカーとは何ですか?それらを使用する理由は何ですか?

初めて読んだときにマーカーについて聞いた:

http://slf4j.org/faq.html

Loggerオブジェクトの利用可能なメソッドをチェックします:

見つかったインターフェース:

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

しかし、まだ混乱しています...whyではなくhowを使用してください。したがって、これは以下の複製ではありません。

[〜#〜] update [〜#〜]マーカーを使用する場合、カスタムJava =代わりに[〜#〜] xml [〜#〜]または。propertyファイルで設定を行うコード...

UPDATE 2From 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"));
85
gavenkoa

これは再ハッシュされたバージョンです 私の答え 質問に対する SLF4J/Logbackでマーカーを使用するためのベストプラクティス

マーカーを使用して、colorまたはsinglelogステートメントをマークできます。これらの色、つまりマーカーで何をするかはあなた次第です。ただし、マーカーの使用に関しては、2つのパターンが一般的(最初のパターンは2番目のパターンよりも一般的)のようです。

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

  2. フィルタリング:たとえば、「DB」という色で永続性関連のログ(さまざまな複数のクラスファイル)をすべて色付け/マーク付けできます。その後、「DB」でフィルタリングできます。DBでマークされたログステートメントを除き、ロギングを無効にします。詳細については、logbackドキュメントの フィルターの章 を参照してください(MarkerFilterを検索)。

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

92
Ceki