感觉就是slf4j提供了 {} 这种通配的日志描述形式,以及代码组织形式
if (null == level) {
return;
}
try {
Class loggerIntrospected = logger.getClass();
Field fields[] = loggerIntrospected.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String fieldName = fields[i].getName();
if (fieldName.equals("logger")) {
fields[i].setAccessible(true);
org.apache.log4j.Logger loggerImpl = (org.apache.log4j.Logger) fields[i].get(logger);
loggerImpl.setLevel(level);
}
}
} catch (Exception e) {
}
}
Level level = null;
try {
Class loggerIntrospected = logger.getClass();
Field fields[] = loggerIntrospected.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String fieldName = fields[i].getName();
if (fieldName.equals("logger")) {
fields[i].setAccessible(true);
org.apache.log4j.Logger loggerImpl = (org.apache.log4j.Logger) fields[i].get(logger);
level = loggerImpl.getLevel();
}
}
} catch (Exception e) {
}
return level;
}
log4j提供了底层的配置、存储
在配置文件上,可以配置默认输出的日志级别,一般都是输出info日志,但是有的情况,基于调试的需求,想要把debug的日志也输出,这时候就要动态调整日志输出级别。
这时候可以通过如下方法调整:
public static void setLevel(Level level) {
public static Level getLevel() {