在系统启动的时候加载log4j的配置文件
1、自定义监听类并且继承“ServletContextListener”接口:
1 package cn.ibeans.common;
2
3 import java.io.File;
4 import java.util.List;
5
6 import javax.servlet.ServletContextEvent;
7 import javax.servlet.ServletContextListener;
8
9 import org.apache.log4j.Logger;
10 import org.apache.log4j.PropertyConfigurator;
11 import cn.ibeans.common.util.FileUtil;
12 /**
13 *
14 * @author hezuoan
15 *
16 */
17 public class ApplicationListener implements ServletContextListener {
18
19 private static Logger log = Logger.getLogger(ApplicationListener.class);
20 @Override
21 public void contextInitialized(ServletContextEvent sce) {
22
23 //获取log4j配置文件的地址
24 String log4jPath = ApplicationDispatchServlet.class.getResource("/").getPath() + "config/logs";
25 List
26
27 if ((files == null) || (files.size() == 0)){
28 log.info("没有发现Log4j配置文件.");
29 return;
30 }
31 for (File file : files) {
32 //加载配置文件
33 PropertyConfigurator.configure(file.getPath());
34 }
35 log.info("加载Log4j配置文件完成.");
36 }
37
38 @Override
39 public void contextDestroyed(ServletContextEvent sce) { }
40
41 }
上述代码中FileUtil.listFile() 方法是自己封装的工具类。
View Code
2、在Web.xml 添加该监听器的配置:
加载log4j的配置文件的目的是为了使日志文件“放在跟工程相对路径的地方”,这样即使将项目移植到不同的操作系统上面,显示也是正常的。