通过配置LogLog.setInternalDebugging(true);可以查看log4j.properties默认的加载过程。
在这里我们先不在web项目的src目录下面放log4j.properties文件,下面是测试的java文件
import org.apache.log4j.Logger;
import org.apache.log4j.helpers.LogLog;
/**
* 1.在java项目中,log4j.properties配置文件应该放到src目录下
* 2.在web项目中,log4j.properties配置文件应该放到WebRoot目录下。但是如果想在web项目中java代码中测试,
* 应该将log4j.properties放到项目的src目录下
* 3.log4j.properties配置文件放的位置很重要,否则无法输出日志信息 4.
*
*/
public class Log4jTest {
private static Logger logger;
private static Logger logger2;
static {
LogLog.setInternalDebugging(true);//可以看到log4j启动的内部日志
System.out.println("start.............");
/* 当Logger初始化时,将会查找log4j.properties文件,如果找到log4j.properties文件,就解析该文件并且使用解析的数据来初始化Logger,用来初始化Logger */
logger = Logger.getLogger(Log4jTest.class);
System.out.println("end...........");
}
/**
* 说明log4j.properties只会被加载一次,就是在第一次初始化Logger的时候
*/
static {
System.out.println("start.............");
logger2 = Logger.getLogger("gaoweigang");
System.out.println("end...........");
}
public static void main(String[] args) {
logger2.error("我是彭传志");
}
}
执行上面java代码,有如下输出: