log4j日志记录的层次结构是什么?
DEBUG
INFO
WARN
ERROR
FATAL
哪一个提供最高的日志记录,这将有助于解决问题? 有人能提供日志记录从高到低的顺序或层次结构吗? 谢谢!
log4j日志记录的层次结构是什么?
DEBUG
INFO
WARN
ERROR
FATAL
哪一个提供最高的日志记录,这将有助于解决问题? 有人能提供日志记录从高到低的顺序或层次结构吗? 谢谢!
当前回答
使用强制,读取源代码(摘自编译的优先级和级别类,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) - "打印"。归根结底,这一切都可以归结为整数比较,这就是这些常量发挥作用的地方。
其他回答
[摘自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日志级别上设置alert,并警告监控团队对此消息做出反应。在登录Java时ERROR是很严重的,你应该总是打印它。
FATAL java日志级别指定可能导致应用程序中止的非常严重的错误事件。在此之后,大部分应用程序崩溃并停止。
OFF java日志级别具有可能的最高级别,用于关闭java中的日志记录。
下面的表格可能对你有帮助:
向下看第一列,您将看到日志在每一层中的工作方式。例如WARN, (FATAL, ERROR和WARN)将是可见的。对于OFF,什么都不可见。
log4j日志级别从高到低的层次结构如下:
跟踪 调试 信息 警告 错误 致命的 从
TRACE日志级别提供最高级别的日志记录,这将有助于故障排除。DEBUG日志级别对于解决问题也非常有用。
你也可以参考这个链接了解更多关于日志级别的信息: https://logging.apache.org/log4j/2.0/manual/architecture.html
使用强制,读取源代码(摘自编译的优先级和级别类,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) - "打印"。归根结底,这一切都可以归结为整数比较,这就是这些常量发挥作用的地方。
等级秩序
所有 跟踪 调试 信息 警告 错误 致命的 从