读书人

Log4j日志文件惯用配置

发布时间: 2013-02-19 11:11:40 作者: rapoo

Log4j日志文件常用配置

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"/>

读书人网 >互联网

热点推荐