web.xml配置中的log4jRefreshInterval讲解

采用spring框架的项目如何使用log4j在spring中使用log4j,有些方便的地方,

1.动态的改变记录级别和策略,即修改log4j.properties,不需要重启web应用,这需要在web.xml中设置一下。

2.把log文件定在/WEB-INF/logs而不需要写绝对路径。

3.可以把log4j.properties和其他properties一起放在/WEB-INF下,

首先我们在web.xml中需要设定

<context-param> 
<param-name>log4jConfigLocation</param-name> 
<param-value>WEB-INF/log4j.properties</param-value> 
</context-param> 

<context-param> 
<param-name>log4jRefreshInterval</param-name> 
<param-value>60000</param-value> 
</context-param> 

<listener> 
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
</listener> 
其中第二部分是能够动态修改log4j.properties的关键,容器会每60秒扫描log4j的配置文件。有一点就是我们如果用RollingFileAppender或者是FileAppender时,可以通过${webapp.root}来定位到服务器的发布的该项目下,这是spring把web目录的路径压入到了webap.root的系统变量。然后,在log4j.properties里就可以这样定义logfile位置log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log 

如果有多个web应用,怕webapp.root变量重复,可以在context-param里定义webAppRootKey

原文地址:https://www.cnblogs.com/JKayFeng/p/5893690.html