Here is an example of an xml configuration which uses filters (BTW: Using this
two appenders when debugging in eclipse the console shows the DEBUG and INFO
in black color and the others in red color). You can also write your own filter
class where you are free to filter what you want. Be careful on the ordering
when extending this xml file. The logj4 parser expects first all appenders
followed by all loggers.
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j=" http://jakarta.apache.org/log4j/"
debug="false">
<appender name="CONSOLE.ERR" class="org.apache.log4j.ConsoleAppender">
<param name="target" value="System.err"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{HH:mm:ss.SSS} (%6r) %-5p
%-10X{category} [%-7t] %F:%L %x - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="warn"/>
<param name="LevelMax" value="fatal"/>
<param name="AcceptOnMatch" value="false"/>
</filter>
</appender>
<appender name="CONSOLE.OUT" class="org.apache.log4j.ConsoleAppender">
<param name="target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{HH:mm:ss.SSS} (%6r) %-5p
%-10X{category} [%-7t] %F:%L %x - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="debug"/>
<param name="LevelMax" value="info"/>
<param name="AcceptOnMatch" value="false"/>
</filter>
</appender>
<root>
<level value="debug"/>
<appender-ref ref="CONSOLE.ERR"/>
<appender-ref ref="CONSOLE.OUT"/>
</root>
</log4j:configuration>