log4j日志记录的层次结构是什么?
DEBUG
INFO
WARN
ERROR
FATAL
哪一个提供最高的日志记录,这将有助于解决问题? 有人能提供日志记录从高到低的顺序或层次结构吗? 谢谢!
log4j日志记录的层次结构是什么?
DEBUG
INFO
WARN
ERROR
FATAL
哪一个提供最高的日志记录,这将有助于解决问题? 有人能提供日志记录从高到低的顺序或层次结构吗? 谢谢!
当前回答
跟踪——>调试——>信息——>警告——>错误——>致命
如果“日志级别”为“警告”。它将记录所有WARN和它下面的所有级别。(错误和致命)。 如果“日志级别”为“TRACE”。它会记录所有的TRACE和它下面的所有级别(DEBUG,INFO,WARN,ERROR,FATAL)。
其他回答
OFF
FATAL
ERROR
WARN
INFO
DEBUG
TRACE
ALL
等级秩序
所有 跟踪 调试 信息 警告 错误 致命的 从
我发现术语“日志级别”有点令人困惑,所以我更喜欢这样想:
事件有一个SEVERITY(级别)。在log4j中,它被建模为整数。 记录器有一个THRESHOLD(又名LoggerConfig级别,用于过滤事件)
按照约定,log4j定义了一些标准日志级别。在v2。这些是(按严重程度递减): 关闭,致命,错误,警告,信息,调试,跟踪,所有。请注意,OFF和ALL只是Logger的阈值,而不是事件严重级别)。您还可以添加自己的自定义级别,并为它们分配一个数值。
Logger将忽略任何严重程度低于其阈值的事件:
阈值为OFF表示没有日志记录。 阈值为FATAL意味着只记录致命事件(或更糟糕的事件)。 ERROR阈值表示只记录ERROR、FATAL(或更糟的情况)。 阈值WARN表示只记录WARN、ERROR、FATAL(或更糟糕的)。 等等…… 阈值为ALL意味着记录所有事件(最详细的选项)
作为一个图表(基于log4j v2中显示的表)。X文档)它看起来是这样的:
使用强制,读取源代码(摘自编译的优先级和级别类,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;
或者Level类的log4j API,这很清楚。
当库决定是否打印某条语句时,它会计算负责的Logger对象的有效级别(基于配置),并将其与LogEvent的级别(取决于代码中使用的方法- trace/debug/…/fatal)进行比较。如果LogEvent的级别大于或等于Logger的级别,LogEvent将被发送到appender(s) - "打印"。归根结底,这一切都可以归结为整数比较,这就是这些常量发挥作用的地方。
为了说明这一点,在log4j中没有像“层次结构”这样定义的术语。 是的,有不同的层次。为了进行故障排除,您必须选择需要日志的级别。