log4j でアプリケーションの情報ログと各種ライブラリのデバッグログを分ける


バッチアプリケーションなどで、途中経過等を出力するアプリケーション側の情報ログと、フレームワーク等が出力するデバッグログを分ける設定。

log4j.properties に記載します。

###########################################
# log4j でバッチの情報ログとデバッグログを分ける
###########################################

## アプリケーションの情報ログ
log4j.category.jp.example.batch=INFO, FILE, C
log4j.additivity.jp.example.batch=false

## 各種ライブラリのログ
log4j.category.org.seasar=DEBUG, FILE2, C
log4j.additivity.org.seasar=false

log4j.category.org.apache.axis=INFO, FILE2
log4j.additivity.org.apache.axis=false

log4j.category.org.seasar.extension.jdbc=DEBUG, FILE2
log4j.additivity.org.seasar.extension.jdbc=false

log4j.category.com.google.api.ads.adwords.lib.client.AdWordsServiceClient.requestInfoLogger=INFO, FILE2, C
log4j.additivity.com.google.api.ads.adwords.lib.client.AdWordsServiceClient.requestInfoLogger=false
log4j.category.com.google.api.ads.adwords.lib.client.AdWordsServiceClient.soapXmlLogger=INFO, FILE2, C
log4j.additivity.com.google.api.ads.adwords.lib.client.AdWordsServiceClient.soapXmlLogger=false

## アプリケーションログの出力ファイル設定
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.FILE.Threshold=INFO
log4j.appender.FILE.File=job_exec.log
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
log4j.appender.FILE.Append=true
log4j.appender.FILE.BufferedIO=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%-5p %d{MM/dd HH:mm:ss,SSS} %m%n

## ライブラリログの出力ファイル設定
log4j.appender.FILE2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE2.File=job_debug.log
log4j.appender.FILE2.DatePattern='.'yyyy-MM-dd
log4j.appender.FILE2.Append=true
log4j.appender.FILE2.BufferedIO=false
log4j.appender.FILE2.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE2.layout.ConversionPattern=%-5p %d{MM/dd HH:mm:ss,SSS} %m%n

## コンソールの出力設定
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.out
log4j.appender.C.ImmediateFlush=true
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%-5p %d [%t] %m%n

## 基底の設定は、情報ログをアプリケーションログとコンソールへ出力する
log4j.rootLogger=INFO, FILE, C

See Also