いろいろな方法がありますが、そのうちの一つということで。
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