1日志级别热修改
web.xml
===============================================================================
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>5000</param-value>
</context-param>
===============================================================================
Spring的Log4jConfiglistener类会调用Log4j的PropertyConfigurator.configureAndWatch(),将刷新间隔作为参数传入。
public static void initLogging(String location, long refreshInterval) throws FileNotFoundException {
String resolvedLocation =SystemPropertyUtils.resolvePlaceholders(location);
File file = ResourceUtils.getFile(resolvedLocation);
if (!file.exists()) {
throw new FileNotFoundException("Log4j config file [" +resolvedLocation + "] not found");
}
if(resolvedLocation.toLowerCase().endsWith(XML_FILE_EXTENSION)) {
DOMConfigurator.configureAndWatch(file.getAbsolutePath(),refreshInterval);
}
else {
PropertyConfigurator.configureAndWatch(file.getAbsolutePath(),refreshInterval);
}
}
2日志文件编码格式
<appender name="FILEOUT" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${vc.log.path}/cdai_ssh.log" />
<param name="Encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[CDAI_SSH]%d{yyy-MM-dd HH:mm:ss}%-5p%m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</appender>
3日志文件保留时间
通过下面配置,可以限制DailyRollingFileAppender保留的文件个数。
<param name="MaxBackupIndex"value="10"/>