webapps/hoge/WEB-INF/classes/log4j.properties というファイルを作成。
クラスパスが通っている場所に log4j.properties というファイルを置けばいいらしい。

log4j.properties の中身
FileAppender はファイルへ出力するところ。


### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1} - %m%n
 
### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/home/nekonyan/hoge.log
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %5p %c{1} - %m%n
 
log4j.rootLogger=debug, stdout, file

ログ出力部分のコードはこんな感じ。


org.apache.log4j.Logger logger = Logger.getLogger("info.nilab.Test");
logger.debug("Hello, Log4J");

Log4J徹底解説~使い方(1) が参考になる。

ログの出力レベルには fatal, error, warn, info, debug というのがあるけど、trace というのも追加されたらしい。

trace ver 1.2.12 で新規追加。今までデバッグレベルが大まか過ぎたのを解消するため、一番詳細なログレベルとして追加された。ホントに詳細な動作チェックをするケースで使うべきレベルである。
Log4J徹底解説~使い方(1)

むかし、自分で簡易的なロギング用クラスを作ったときは、flood というログレベルを作った。あふれんばかりのデバッグログという意味で。
そういう用途のレベルが要るということに Log4J の作者も気づいたということか。それともホンネはそういう用途に debug を使ってちょっとしたデバッグ情報に info を使えよ、とか思われていたりして。

tags: zlashdot Java Java Tomcat

Posted by NI-Lab. (@nilab)