log4j日志框架logger是存在继承关系的,我们一般都会在log4j.properties文件中定义log4j.rootLogger。其他所有logger都继承自这个rootLooger。考虑下面这种场景:假如我们有2个类HelloLog4j和A。
package aty.log;
import org.apache.log4j.Logger;
import aty.log.service.A;
public class HelloLog4j {
private static Logger logger = Logger.getLogger(HelloLog4j.class);
public static void main(String[] args) {
logger.debug("log in main.");
new A().run();
}
}
package aty.log.service;
import org.apache.log4j.Logger;
public class A {
private static Logger logger = Logger.getLogger(A.class);
public void run() {
logger.error("log in A.java");
}
}
#rootLogger can print DEBUG to console
log4j.rootLogger=debug, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=debug
log4j.appender.console.ImmediateFlush=true
log4j.appender.console.Target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout