log4j的配置文件放在classpath下会被自动加载,但是更换路径就不会去加载了。下面给出解决办法:
1.编写servlet,并随着server启动加载。代码如下:
public class FileThreadServlet extends HttpServlet {
public void init(){
String prefix = getServletContext().getRealPath("/");
String log4jFile = getInitParameter("log4jConfigLocation");//web.xml中配置
if (log4jFile != null) {
PropertyConfigurator.configure(prefix + log4jFile);
}
}
2.在web.xml中配置servlet以及初始化参数,并设置初始启动
<servlet>
<servlet-name>fileThreadServlet</servlet-name>
<servlet-class>com.test.servlet.FileThreadServlet</servlet-class>
<init-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/conf/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
这样启动就会直接加载更改路径后的配置文件,finish!