いろいろな方法がありますが、そのうちの一つということで。
InfoLogやErrorLogが混在していると見づらいです。もちろんchainsawとか使えば良いんですが。
そんなわけで、重要なログを別ファイルに追加出力をしてみたいと思います。
LogLevelSample.java
package com.example;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class LogLevelSample {
public static void main(String[] args) {
final Log log = LogFactory.getLog(LogLevelSample.class);
log.trace("trace log");
log.debug("debug log");
log.info("info log");
log.warn("warn log");
log.error("error log");
log.fatal("fatal log");
}
}
log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="https://jakarta.apache.org/log4j/">
<appender name="FILEOUT" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${java.io.tmpdir}/logs/example.log" />
<param name="Append" value="true" />
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss} [%p] %c:%L - %m%n"/>
</layout>
</appender>
<appender name="FILEOUT_IMPORTANT" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${java.io.tmpdir}/logs/example-imp.log" />
<param name="Append" value="true" />
<param name="Threshold" value="ERROR" />
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss} [%p] %c:%L - %m%n"/>
</layout>
</appender>
<category name="com.example" additivity="false">
<priority value="trace" />
<appender-ref ref="FILEOUT" />
<appender-ref ref="FILEOUT_IMPORTANT" />
</category>
<root>
<priority value ="info" />
<appender-ref ref="FILEOUT" />
</root>
</log4j:configuration>
出力ファイル(example.log)
2008/04/05 12:00:52 [DEBUG] com.example.LogLevelSample:18 - trace log 2008/04/05 12:00:52 [DEBUG] com.example.LogLevelSample:19 - debug log 2008/04/05 12:00:52 [INFO] com.example.LogLevelSample:20 - info log 2008/04/05 12:00:52 [WARN] com.example.LogLevelSample:21 - warn log 2008/04/05 12:00:52 [ERROR] com.example.LogLevelSample:22 - error log 2008/04/05 12:00:52 [FATAL] com.example.LogLevelSample:23 - fatal log
出力ファイル(example-imp.log)
2008/04/05 12:00:52 [ERROR] com.example.LogLevelSample:22 - error log 2008/04/05 12:00:52 [FATAL] com.example.LogLevelSample:23 - fatal log