log4jロギング階層の順序


169

log4jロギングの階層は何ですか?

DEBUG
INFO
WARN
ERROR
FATAL

問題のトラブルシューティングに役立つ最高のログを提供するものはどれですか。ロギングが行われる順序または階層を最高から最低まで提供できますか?ありがとう!

回答:


292

この表はあなたに役立つかもしれません:

ログレベル

最初の列を下に行くと、ログが各レベルでどのように機能するかがわかります。つまり、WARNの場合(FATAL、ERROR、およびWARN)が表示されます。以下のためにOFF、何も表示されなくなります。


可視性アイテムという用語は自明ではありません。公式ドキュメントもこれについては曖昧だと思います。などの出力方法errorinfodebugロガーの、等は、ログメッセージに優先順位/重大度レベルを割り当てます。ログが実際に有効になる(メッセージが表示される)かどうかは、使用されているロガーの有効なログレベルによって異なります。
ウルフ

1
リンクが壊れています。修正または削除してください
yurin '13年

これは質問に答えますが(それは単に「階層の順序」を求めることです)、私はようやくあなたの悪い用語に反対票を投じました:ダウンする「可視性」は機能するアイテム。ロガー構成が実際のロギング(ログイベントの受け渡し)にどのように影響するか説明しませんか?別の更新を検討してください。ところで:中テーブル公式ドキュメント(セクションの終わりには)治療が異なるOFFALLも、ソースのいくつかを読んだ後、私は彼らのテーブルが正しいことを疑う(特殊なケースを見つけていません)、。
ウルフ、

ウルフありがとう、コメントに応じて回答を更新しました。
nxhoaf

2
これは、特定のロガーレベル設定で出力されるログレベルと予想されるログメッセージタイプの優れた視覚化だと思います。私の唯一の提案は、行の色を交互にして、グラフを列ではなく行で解釈するようにビューアをガイドすることです。(つまり、行はロガーレベルを表し、列は存在するログメッセージのタイプを表します)
Larry Hector

149

フォースを使用してソースを読み取ります(コンパイルされたクラスPriorityLevelクラスからの抜粋、TRACEレベルはバージョン1.2.12で導入されました):

public final static int OFF_INT = Integer.MAX_VALUE;
public final static int FATAL_INT = 50000;
public final static int ERROR_INT = 40000;
public final static int WARN_INT  = 30000;
public final static int INFO_INT  = 20000;
public final static int DEBUG_INT = 10000;
public static final int TRACE_INT = 5000; 
public final static int ALL_INT = Integer.MIN_VALUE; 

または、クラスのlog4j APIを使用Levelすると、非常に明確になります。

ライブラリが特定のステートメントを出力するかどうかを決定すると、責任のあるLoggerオブジェクトの有効レベルを(構成に基づいて)計算し、それをのレベルと比較しLogEventます(コードで使用されたメソッドに応じて、トレース/デバッグ/ ... /致命的)。場合LogEventのレベルが大きいか等しいLoggerのレベル、LogEventアペンダに送られる(複数可) - 『プリント』。コアでは、すべてが整数の比較に要約され、ここでこれらの定数が機能します。


56
OFF
FATAL
ERROR
WARN
INFO
DEBUG
TRACE
ALL

1
これは、tutorialspoint.com / log4j / log4j_logging_levels.htmで提供されている情報と競合しています。どちらが本当ですか?
Mike

1
証明の整数変数がどこにあるかを確認するコードdocjar.com/html/api/org/apache/log4j/Level.java.html
the.malkolm

4
あなたのリンクでそれは「すべて<デバッグ<情報<警告<エラー<致命的<オフ」と言った、そしてそれは私が言ったのと完全に同じ
the.malkolm

6
ベン図OFF()ALL(TRACE(DEBUG(INFO(WARN(ERROR(FATAL))))))
HernánEche

@Mike on log4jログレベルは、最初の表でアルファベット順を使用しています。行方不明のを除いてtrace、彼らは後でそれを正しく述べていますALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF(その中で<重要性は低いことを意味します)
Wolf

24

log4jロギングレベルの階層は、次のとおりです。

  • 痕跡
  • デバッグ
  • INFO
  • 警告
  • エラー
  • 致命的
  • オフ

TRACEログレベルは、問題のトラブルシューティングに役立つ最高のログを提供します。DEBUGログレベルは、問題のトラブルシューティングにも非常に役立ちます。

ログレベルの詳細については、このリンクを参照することもできます。https//logging.apache.org/log4j/2.0/manual/architecture.html


12

[ http://javarevisited.blogspot.com/2011/05/top-10-tips-on-logging-in-java.htmlから取得]

DEBUGは最も制限されたJavaロギングレベルであり、アプリケーションをデバッグするために必要なすべてのものを記述する必要があります。このJavaロギングモードは、開発およびテスト環境でのみ使用し、本番環境では使用しないでください。

INFOはDEBUG Javaロギングレベルよりも制限されており、サーバーが起動した、受信メッセージ、送信メッセージなど、JavaでのINFOレベルロギングなどの情報目的のメッセージをログに記録する必要があります。

WARNはINFO Javaロギングレベルよりも制限されており、警告の種類のメッセージをログに記録するために使用されます(例:クライアントとサーバー間の接続が失われました)。データベース接続が失われ、ソケットが限界に達しました。これらのメッセージとJavaログレベルは、Javaでこれらのログメッセージにアラートを設定し、サポートチームにJavaアプリケーションの状態を監視させ、この警告メッセージに反応させることができるため、ほとんど重要です。要約では、WARNレベルは、Javaにログインするための警告メッセージをログに記録するために使用されます。

ERRORはWARNよりも制限されたJavaロギングレベルであり、エラーと例外をログに記録するために使用されます。このJavaロギングレベルでアラートを設定し、このメッセージに反応するようにアラート監視チームを設定することもできます。ERRORはJavaでのログ記録に深刻であり、常に印刷する必要があります。

致命的なJavaロギングレベルは、おそらくアプリケーションを中止させる非常に重大なエラーイベントを指定します。この後、ほとんどの場合、アプリケーションがクラッシュして停止します。

OFF Javaロギングレベルは可能な最高ランクであり、Javaでのロギングをオフにすることを目的としています。


4

階層順序

  1. すべて
  2. 痕跡
  3. デバッグ
  4. INFO
  5. 警告
  6. エラー
  7. 致命的
  8. オフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.