在log4j中,为什么是;关「;最高日志记录级别?

在log4j中,为什么是;关「;最高日志记录级别?,log4j,log4j2,Log4j,Log4j2,我一直在努力直观地理解Log4J级别 : 说最高级别是什么意思?我宁愿认为DEBUG或ALL是最高的,即产生最多数据的级别 谢谢 Samudra Gupta在他的书Pro Apache Log4j第二版1中说(重点是我的): 级别具有唯一的整数值,并在前面的列表中从最低值到最高值排列 在内部,为每个级别分配一个整数值: 级别Int值 ----- ----------------- 所有整数的最小值 跟踪5000 调试10000 信息20000 警告30000 错误40000 致命的5000

我一直在努力直观地理解Log4J级别

:

说最高级别是什么意思?我宁愿认为
DEBUG
ALL
是最高的,即产生最多数据的级别


谢谢

Samudra Gupta在他的书Pro Apache Log4j第二版1中说(重点是我的):

级别具有唯一的整数值,并在前面的列表中从最低值最高值排列

在内部,为每个级别分配一个整数值:

级别Int值
-----   ----------------- 
所有整数的最小值
跟踪5000
调试10000
信息20000
警告30000
错误40000
致命的50000
OFF Integer.MAX_值
考虑以下方法:

公共无效信息(对象消息,可丢弃的t){
if(存储库已禁用(级别信息))
返回;
if(Level.INFO.isgreaterequal(this.getEffectiveLevel()))
强制日志(FQCN,Level.INFO,message,t);
}
第一个
if
验证阈值。如果级别大于或等于阈值,则会将其写入日志。e、 g.如果阈值为
INFO
,则
ERROR>INFO
TRACE
。因此,
跟踪
将不会被写入

第二个
if
验证记录器的级别。e、 g.如果记录器的级别为
OFF
ERROR
,则不会写入
ERROR

因此,具有高值的级别将不允许在日志中写入具有较小值的级别。并且
OFF
具有最高的可能秩(
Integer.MAX_VALUE

另一种看问题的方式是严重程度。而
OFF
的严重程度最高


注释

  • Samudra Gupta,“理解ApacheLog4j”,在ProApacheLog4j中,第二版(加州伯克利:Apress,2005),24
  • OFF has the highest possible rank and is intended to turn off logging.