今更ながらのlog4j

実はいままでマトモにlog4j.propertiesを書いたことがなかったりする。
で、標準出力に指定したパターンでのメッセージを出す場合の設定ファイルの書き方を調べてみる。

#root logger
log4j.rootLogger=debug,STDOUT

#Appender STDOUT
log4j.appender.STDOUT = org.apache.log4j.ConsoleAppender

#STDOUT Configuration
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %-5p [%t] %c (%F:%L) - %m%n

まずはrootLoggerの設定。
上の例ではデフォルトの出力レベルをデバッグにしている。(debugだと膨大な量が出てくる。)
で、出力先を標準出力に。ファイルに出力したい場合はここを"FILE"と書けばいい。
出力先はいろんなものが選べるらしい。
各々の出力先へのアダプタをAppenderというらしい。
で、次にコンソールへのAppenderクラスを指定している。(org.apache.log4j.ConsoleAppender)

最後にSTDOUTへの出力レイアウトの設定をパターンで行い、そのパターンの設定が書いてあるといった具合。
パターンについては色々な置き換え文字があり、それによってロギングの負荷が大きく左右されるとのこと。
とくにクラスの完全修飾名やファイル名を出力すると重くなるようだ。

log4jの真骨頂は設定ファイルにあるとのこと。まだまだ奥が深くいろいろなことができるようだ。