线上环境的log输出级别一般都设置的很高比如WARN,如果出现一些很难直观解决的问题,可能需要调整日志输出级别为DEBUG,又不想改个日志输出级别还要重启服务,那么可以考虑一下如下方法:
通过在web.xml中添加如下配置:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<!-- watch dog 监听log4j配置变化,60秒钟扫描一次-->
<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>
log4jConfigLocation是指定你的log4j配置文件的location,
log4jRefreshInterval是刷新频率,单位是毫秒
然后配置一个Log4jConfigListener监听器
这个监听器会开启一个Watch DOG监控线程,每隔log4jRefreshInterval时间扫描一下log4jConfigLocation指定的配置文件的lastModified文件属性,如果有更新了则重新装载log4j配置。
Log4jConfigListener已经被spring标记为deprecated了。好像是建议使用log4j2.增强版log4j。有空学习一下log4j2.