Log4J

Log4J


例外発生時、スタックトレースもログに出させる


try {
    ...
} catch(Exception e) {
    logger.error(e);
}

とやってもスタックトレースは出ない。

logger.error(e.getMessage(), e);

というように第一引数がString,第二引数がThrowableになっているやつを利用すれば出る。

DailyRollingFileAppenderのログ消失の件

DailyRollingFileAppenderで、日付ファイルに更新するときに失敗してログが消失する罠は、
最新版(2010年4月リリース)の1.2.16で修正された。らしい。

log4j.xml サンプル

   <?xml version="1.0" encoding="UTF-8" ?>
   
   <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
   <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
   
   <!-- *** Appender *** -->
   
   <!-- コンソール -->
   <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender" >
       <param name="threshold" value="DEBUG"/>
           <layout class="org.apache.log4j.PatternLayout">
           <param name="ConversionPattern" value="%d %-5p [%t] (%F:%L) - %m%n"/>
       </layout>
   </appender>
   
   <!-- ファイル(ファイル名日替わり) -->
   <appender name="DAILY" class="org.apache.log4j.DailyRollingFileAppender">
   <param name="file" value="C:\\temp\daily.log" /> 
   <param name="threshold" value="DEBUG"/>
   <param name="append" value="true" />
   <layout class="org.apache.log4j.PatternLayout">
       <param name="ConversionPattern" value="%d %-5p (%F:%L) - %m%n"/>
   </layout>
   </appender>
   
   
   <!-- *** Category *** -->
   
   <category name="test.test.test">
       <appender-ref ref="DAILY" />
   </category>
   
   <root>
       <appender-ref ref="STDOUT" />
   </root>
   
   </log4j:configuration>











.
最終更新:2012年11月07日 11:03