[解決済み] Java Loggingフレームワークにおけるマーカーとは何か、マーカーを使用する理由とは?
質問
マーカーについて初めて知ったのは、本を読んでいるときでした。
の利用可能なメソッドを確認しました。 ロガー オブジェクトの利用可能なメソッドを確認しました。
- http://www.slf4j.org/api/org/slf4j/Logger.html
- http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html
といったインターフェイスが見つかりました。
- http://www.slf4j.org/api/org/slf4j/Marker.html
- http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Marker.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つのパターンが一般的のようです。
-
トリガ : あるアペンダーは、あるマーカーが存在するときにアクションを起こすように指示されるかもしれません。例えば
SMTPAppender
でマークされたロギングイベントが発生するたびに、電子メールを送るように設定することができます。NOTIFY_ADMIN
マーカーが付けられると、ログレベルに関係なくメールを送るように設定できます。参照 マーカベースのトリガ を参照してください。また、ログレベルとマーカーを組み合わせてトリガーをかけることもできます。 -
フィルタリング : マーカーは、特定の貴重なログ ステートメントを目立たせるために非常に便利です。 例えば、(様々な複数のクラスファイル内の)すべての永続性関連ログに "DB" という色を付けることができます。そして、"DB" をフィルタリングして、DBでマークされたログステートメント以外のログを無効化することができます。詳細は の章を参照してください。 を参照してください(MarkerFilter を検索してください)。なお、マーカーに対するフィルタリングは、logbackだけでなく、ログ解析ツールでも実行可能です。
マーカーが登場する以前は、同様の動作を実現するために、1) カスタムレベルを使用する 2) 変更したロガー名を使用する というオプションがありました。SLF4JのAPIは現在、カスタムレベルをサポートしていません。オプション2に関しては、ロガー名のサフィックス(またはプレフィックス)は、1つまたは2つのロガーが変更される必要がある場合、実行可能です。3つ以上のロガーをサブクラス化する必要がある場合、関連する設定ファイルが管理できなくなるため、このアプローチは現実的ではなくなります。
単一のマーカーがすでに非常に有用であるにもかかわらず、SLF4Jの次のバージョン、すなわちバージョン2.0では、ログステートメントごとに複数のマーカーを使用できるようになります。
関連
-
[解決済み] JVM起動時のパラメータ「-Xms」「-Xmx」とは何ですか?
-
SpringBootApplication を型解決できない。
-
Javaクラスローダーにソースコードから潜り込む
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
springboot project MIMEタイプ text/htmlで転送された静的ファイルを読み込む。
-
IllegalArgumentException この例外を解決する方法
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
プロローグでのコンテンツは禁止されています
-
プロジェクトの依存関係を解決できなかった 解決
-
Intellij IDEAのエラー「CreateProcess error=2, system could not find specified file」に対する完璧な解決策です。
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
java -serverコマンドで「Error: no `server' JVM at ... jvm.dll」を解決する方法です。
-
[解決済み] SLF4J/Logbackでマーカーを使用するためのベストプラクティス