蜜蜂号覚書 log4j
※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

log4j


同一カテゴリのログに対して、levelに応じて別のappenderを適用する。

カテゴリを複数記述できないため、以下のようにする。
  • appenderを複数適用する。
  • appenderにてlevelに対してのfilterを設定する。
(filterは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="appender_1" class="org.apache.log4j.ConsoleAppender">
		<filter class="org.apache.log4j.varia.LevelMatchFilter">
			<param name="LevelToMatch" value="INFO"/>
			<param name="AcceptOnMatch" value="true"/>
		</filter>
		<filter class="org.apache.log4j.varia.DenyAllFilter"/>
	</appender>
	<appender name="appender_2" class="org.apache.log4j.FileAppdender">
		<param name="File" value="log.txt" />
		<param name="Append" value="true" />
		<filter class="org.apache.log4j.varia.LevelMatchFilter">
			<param name="LevelToMatch" value="ERROR"/>
			<param name="AcceptOnMatch" value="true"/>
		</filter>
		<filter class="org.apache.log4j.varia.DenyAllFilter"/>
	</appender>
	<category name="org.example">
		<priority value="INFO" />
		<appender-ref ref="appender_1" />
		<appender-ref ref="appender_2" />
	</category>
</log4j:configuration>
  • INFO以上のログを出力する。
  • Filter設定により、levelがINFOならばConsoleAppenderが有効になる。
  • Filter設定により、levelがERRORならばFileAppenderが有効になる。
  • Filter設定により、それ以外はすべて無効化される。(DenyAllFilterがそれを実現している)
詳しい解説は下記参照。
http://www.nurs.or.jp/~sug/soft/log4j/log4j13.htm