- loggerで設定したlevel以上の場合はコンソール表示
- errorの場合は、追加でファイルにログを出力(前提条件: logger自体のレベルがerror以上の場合)
というのをやってみました。
[src/log4j.xml]
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c::%M() - %m%n" /> </layout> </appender> <appender name="file" class="org.apache.log4j.FileAppender"> <param name="File" value="tmp/error.log" /> <param name="Append" value="true" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c::%M() - %m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="error" /> <param name="levelMax" value="error" /> </filter> </appender> <root> <level value="info" /> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> </log4j:configuration>
上のように、appenderのfilter機能を使うとうまくいきます。これを使えば、レベル毎に
- DBに書き込む
- メールを飛ばす
- ファイルに書き込む
などの設定が行えます。
logger単位のレベルの制御しか知らなかったけど、appender毎にも制御できるんですねー。便利ですねー。
0 件のコメント:
コメントを投稿