(项目中必须同时在使用spring)
web.xml加入
<context-param> <param-name>webAppRootKey</param-name> <param-value>webApp.root</param-value> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>600000</param-value> </context-param> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener>
1. Spring的做法是使用一个Servlet Listener,在Web Container启动时把ROOT的绝对路径写到系统变量里,webAppRootKey的值为webApp.root代表web 项目的根路径,这样log4j的配置文件里就可以用${webApp.root}来表示刚刚设进去的系统变量,可以设置输出log文件的路径为log4j.appender.logfile.File=${webApp.root}/WEB-INF/logs/info.log (当然web项目必须有/WEB-INF/logs这个目录);
2. log4jRefreshInterval为60000表示 开一条watchdog线程每60秒扫描一下配置文件的变化;