通过配置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代码,有如下输出: