log4j.rootCategory=DEBUG,FILE,NT # デバッグログファイルの設定 log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.Threshold=DEBUG log4j.appender.FILE.File=debug.log log4j.appender.FILE.Append=true log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=%d %c %m%n # INFO以上のログのNTイベントログの設定 log4j.appender.NT=org.apache.log4j.nt.NTEventLogAppender log4j.appender.NT.Threshold=INFO log4j.appender.NT.layout=org.apache.log4j.PatternLayout log4j.appender.NT.layout.ConversionPattern=%c %m%n |
<?xml version="1.0" encoding="Shift_JIS" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <!-- INFO以上のログのNTイベントログの設定 --> <appender name="NT" class="org.apache.log4j.nt.NTEventLogAppender"> <param name="Threshold" value="INFO" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%c %m%n"/> </layout> </appender> <!-- デバッグログファイルの設定 --> <appender name="DEBUG" class="org.apache.log4j.FileAppender"> <param name="Append" value="true" /> <param name="File" value="debug.log" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %c %m%n"/> </layout> <filter class="org.apache.log4j.varia.PriorityMatchFilter"> <param name="PriorityToMatch" value="DEBUG" /> <param name="AcceptOnMatch" value="true" /> </filter> </appender> <root> <appender-ref ref="NT" /> <appender-ref ref="DEBUG" /> </root> </log4j:configuration> |
ちなみに、ソースの初期化部分は、以下のような感じ。
※ URL を使用しているのは、WEBアプリで使いやすくするため。下記の設定で、CLASSPATH直下のlog.xmlを読み込む。
URL url = Log.class.getResource("/log.xml"); DOMConfigurator.configure(url); // PropertiesConfigurator.configure(url); |
<appender name="NT" class="org.apache.log4j.nt.NTEventLogAppender"> <param name="Threshold" value="INFO" /> <param name="Source" value="ほげほげシステム" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%c %m%n"/> </layout> </appender> |
※ イベントビューアには、他に「分類」と「イベントID」が出る。ここをうまく意味のある文字列にすることはできないか?
<root> <priority value="INFO" /> <appender-ref ref="NT" /> <appender-ref ref="DEBUG" /> </root> |