Appenderによってなにかしらに出力できるようになる。
thresholdパラメタ
閾値です。これはどのAppenderにでも追加できる。ログレベルのデフォルト値で、例えば、カテゴリでDEBUGとしてthresholdでINFOとする場合は、INFOが優先される。
ファイルはINFOでコンソールはDEBUGという風にできるようになる。
<param name="threshold" value="INFO"/>
ConsoleAppender
コンソール出力用Appender。
log4j.xmlサンプル
<appender name="Console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss}[%p]%m%n"/>
</layout>
</appender>
FileAppender
ファイル出力用Appender。
log4j.xmlサンプル
<appender name="FOR_DEBUG" class="org.apache.log4j.FileAppender">
<param name="File" value="C:/temp/debug.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss}[%p]%m%n"/>
</layout>
</appender>
RollingFileAppender
ファイルサイズが指定サイズを超えたらローテートするAppenader。
log4j.xmlサンプル
<appender name="FOR_DEBUG" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="C:/temp/debug.html" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="1MB"/><!--100KBなどもOK-->
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss}[%p]%m%n"/>
</layout>
</appender>
DailyRollingFileAppender
日付ごとにローテートするAppender。
log4j.xmlサンプル
<appender name="DAILY" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="c:/temp/debug.log" />
<param value="'.'yyyy-MM-dd" name="DatePattern"/>
<param name="append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss}[%p]%m%n"/>
</layout>
</appender>
Windowsではローテートに失敗するらしい
日付ローリングがうまくいかないらしい。やばいね。
http://d.hatena.ne.jp/t_yano/20060919
http://codezine.jp/a/article.aspx?aid=524
日付ローテート&サイズ分割
RollingFileAppenderとDailyRollingFileAppenderを合体させたもの。Log4j1.3ではあるらしいけど以前のバージョンではない。
http://www.okisoft.co.jp/esc/log4j/product/CompositeRollingFileAppender.html
自分で作る場合は、「http://codezine.jp/a/article.aspx?aid=524」
log4j.xmlサンプル
<appender name="FILE" class="org.apache.log4j.CompositeRollingFileAppender">
<param name="File" value="c:/temp/debug.log" />
<param name="MaxFileSize" value="50KB" />
<param name="MaxBackupIndex" value="5" />
<param name="datePattern" value="'.'yyyy-MM-dd-HH-mm" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss}[%p]%m%n"/>
</layout>
</appender>