首先看下Logger类的直接关系图
其中顶级接口 AppenderAttachable 方法如下:
抽象父类Category属性方法如下:
Logger方法如下:
构造方法:会将name传递给父类的Name属性
Logger(String name) {
super(name);
}
方法(1):根据name调用LogManager静态方法,进一步从LoggerRepository获取指定name的Logger
static public Logger getLogger(String name) { return LogManager.getLogger(name); }
方法(2):根据目标Class获取Logger对象,下层方法采用该class.name调用与(1)相同方法获取。(static public 与public static 相同效果)
static
public
Logger getLogger(Class clazz) {
return LogManager.getLogger(clazz.getName());
}
方法:参数类名和Log工厂类,name用于查找是否已有对象,factory用于创建Logger对象,并将产生对象做相关处理
public
static
Logger getLogger(String name, LoggerFactory factory) {
return LogManager.getLogger(name, factory);
}
方法:根据日志级别跟踪message
public void trace(Object message) {
if (repository.isDisabled(Level.TRACE_INT)) {
return;
}
if (Level.TRACE.isGreaterOrEqual(this.getEffectiveLevel())) {
forcedLog(FQCN, Level.TRACE, message, null);
}
}