Log4Jレベルを直感的に理解するのに苦労しています。
OFF has the highest possible rank and is intended to turn off logging.
最高ランクをオフと言うのはどのように意味がありますか?私はむしろ、DEBUG
またはALL
が最高、つまり最も多くのデータを生成するレベルであると思います。
ありがとう!
Samudra Guptaは、彼の著書Pro Apache Log4j、Second Edition 1で次のように述べています(強調は私のものです)。
レベルには一意の整数値が付加されており、上記のリストで最小値から最大値の順に配置されています。
内部的には、整数値が各レベルに割り当てられます。
Level Int Value
----- -----------------
ALL Integer.MIN_VALUE
TRACE 5000
DEBUG 10000
INFO 20000
WARN 30000
ERROR 40000
FATAL 50000
OFF Integer.MAX_VALUE
次の方法を検討してください。
public void info(Object message, Throwable t) {
if (repository.isDisabled(Level.INFO_INT))
return;
if (Level.INFO.isGreaterOrEqual(this.getEffectiveLevel()))
forcedLog(FQCN, Level.INFO, message, t);
}
1つ目if
は、しきい値を確認します。レベルがしきい値以上の場合、ログに書き込まれます。たとえば、しきい値がINFO
、の場合、ERROR > INFO
ただしTRACE < INFO
。だからTRACE
書かれません。
2つ目if
は、ロガーのレベルを確認します。例えばロガーのレベルがある場合OFF
、ERROR < OFF
ので、ERROR
書き込まれません。
したがって、値の高いレベルでは、値の小さいレベルをログに書き込むことはできません。そしてOFF
、可能な限り最高のランク(Integer.MAX_VALUE
)を持っています。
これを確認するもう1つの方法は、ウィキペディアが言うように、重大度のレベルです。そしてOFF
、最高レベルの重大度を持っています。
ノート
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加