在Web应用中的如何设置日志文件的路径呢?最笨的方法是写绝对路径,但很不方便。
而Spring的做法是使用一个Servlet Listener,在Web Container启动时把ROOT的绝对路径写到系统变量里,这样log4j的配置文件里就可以用${myAppfuse.root}来表示刚刚设进去的系统变量: log4j.appender.logfile.File=${myAppfuse.root}/logs/mylog
在Web.xml中配置语句如下:
<!--如果不设,默认为web.root,但最好设置,以免项目间冲突-->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>myappfuse.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>