在 log4j 中,为什么 "OFF" 是最高的日志记录级别?
In log4j, why is "OFF" the highest logging level?
我一直在努力直观地理解 Log4J 级别。
OFF has the highest possible rank and is intended to turn off logging.
关闭最高级别有什么意义?我宁愿认为 DEBUG
或 ALL
是最高的,即产生 most 数据的水平。
谢谢!
Samudra Gupta 在他的书 Pro Apache Log4j, Second Edition 1 中说(重点是我的):
The levels have unique integer values attached to them and are arranged in the preceding list from lowest to highest value.
在内部为每个级别分配一个整数值:
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);
}
第一个if
验证阈值。如果级别大于或等于阈值,它将被写入日志。例如如果阈值为 INFO
,则 ERROR > INFO
但 TRACE < INFO
。所以TRACE
就不写了
第二个if
验证记录器的级别。例如如果logger的级别是OFF
,ERROR < OFF
,那么ERROR
不会被写入。
因此,具有高值的级别将不允许具有较小值的级别写入日志。 OFF
的排名最高 (Integer.MAX_VALUE
)。
另一种查看方式,如 Wikipedia says 所示,是严重程度。 OFF
的严重性级别最高。
注释
- Samudra Gupta,"Understanding Apache log4j" in Pro Apache Log4j,第二版(加利福尼亚州伯克利:Apress,2005 年),24。
我一直在努力直观地理解 Log4J 级别。
OFF has the highest possible rank and is intended to turn off logging.
关闭最高级别有什么意义?我宁愿认为 DEBUG
或 ALL
是最高的,即产生 most 数据的水平。
谢谢!
Samudra Gupta 在他的书 Pro Apache Log4j, Second Edition 1 中说(重点是我的):
The levels have unique integer values attached to them and are arranged in the preceding list from lowest to highest value.
在内部为每个级别分配一个整数值:
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);
}
第一个if
验证阈值。如果级别大于或等于阈值,它将被写入日志。例如如果阈值为 INFO
,则 ERROR > INFO
但 TRACE < INFO
。所以TRACE
就不写了
第二个if
验证记录器的级别。例如如果logger的级别是OFF
,ERROR < OFF
,那么ERROR
不会被写入。
因此,具有高值的级别将不允许具有较小值的级别写入日志。 OFF
的排名最高 (Integer.MAX_VALUE
)。
另一种查看方式,如 Wikipedia says 所示,是严重程度。 OFF
的严重性级别最高。
注释
- Samudra Gupta,"Understanding Apache log4j" in Pro Apache Log4j,第二版(加利福尼亚州伯克利:Apress,2005 年),24。