文章目录
public void debug(Object message) {
if (getRepository().isDisabled(Level.DEBUG_INT)) {
return;
}
if (Level.DEBUG.isGreaterOrEqual(this.getEffectiveLevel())) {
forcedLog(FQCN, Level.DEBUG, message, null);
}
}
public void debug(Object message, Throwable t) {
if (getRepository().isDisabled(Level.DEBUG_INT)) {
return;
}
if (Level.DEBUG.isGreaterOrEqual(this.getEffectiveLevel())) {
forcedLog(FQCN, Level.DEBUG, message, t);
}
}
public void error(Object message) {
if (getRepository().isDisabled(Level.ERROR_INT)) {
return;
}
if (Level.ERROR.isGreaterOrEqual(this.getEffectiveLevel())) {
forcedLog(FQCN, Level.ERROR, message, null);
}
}
public void error(Object message, Throwable t) {
if (getRepository().isDisabled(Level.ERROR_INT)) {
return;
}
if (Level.ERROR.isGreaterOrEqual(this.getEffectiveLevel())) {
forcedLog(FQCN, Level.ERROR, message, t);
}
}
protected void forcedLog(String fqcn, Level level, Object message, Throwable t) {
callAppenders(new LoggingEvent(fqcn, this, level, message, t));
}
可以看到debug,error级别的打印日志,底层都是调用了callAppenders这个方法,而callAppenders追到最下面,就是调用了Appender的doAppend方法,也就是向appenderPipeline管道里面追加一个LoggerEvent。
public void warn(Object message) {
if (getRepository().isDisabled(Level.WARN_INT)) {
return;
}
if (Level.WARN.isGreaterOrEqual(this.getEffectiveLevel())) {
forcedLog(FQCN, Level.WARN, message, null);
}
}
public void warn(Object message, Throwable t) {
if (getRepository().isDisabled(Level.WARN_INT)) {
return;
}
if (Level.WARN.isGreaterOrEqual(this.getEffectiveLevel())) {
forcedLog(FQCN, Level.WARN, message, t);
}
}
可以看到info级别的日志,warn级别的日志,也都是一样的。
public void info(Object message) {
if (getRepository().isDisabled(Level.INFO_INT)) {
return;
}
if (Level.INFO.isGreaterOrEqual(this.getEffectiveLevel())) {
forcedLog(FQCN, Level.INFO, message, null);
}
}
public void info(Object message, Throwable t) {
if (getRepository().isDisabled(Level.INFO_INT)) {
return;
}
if (Level.INFO.isGreaterOrEqual(this.getEffectiveLevel())) {
forcedLog(FQCN, Level.INFO, message, t);
}
}
至此我们基本看完了InternalLoggerFactory类,回到起点KVConfigManager