MyApp 例その2 (4 of 4)

複数appenderを定義した別の設定ファイルです。
log4j.rootCategory=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1 # Keep one backup file
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %c - %m%n
 
この方法により設定されたMyAppの出力は:

 INFO (MyApp2.java:12) - Entering application.
DEBUG (Bar.java:8) - Doing it again!
 INFO (MyApp2.java:15) - Exiting application.


第2のappenderがrootカテゴリーに追加されたのに加えて、 出力は、example.logファイルに向けられるようになります。 このファイルのサイズが100KBに達すると、切り替えられます。 切り替えが発生すると、example.logの古いバージョンは、 自動的にexample.log.1に移動されます。

これらのログの挙動の変更にコードのコンパイルが必要なかった ということは重要です。同様にログをUNIX Syslogデーモンに送ったり、 com.fooの全ての出力をNTイベントログに送ったり、 リモートのlog4jサーバーに送ったりすることができるのです。