You can use LevelMatchFilter for your task. Also, do not forget to use another filter - DenyAllFilter - as the last filter in the filter chain.
Your log4j.xml file will look like this:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.SimpleLayout" /> <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> <appender name="fileAppender" class="org.apache.log4j.FileAppender"> <param name="File" value="error.log" /> <layout class="org.apache.log4j.SimpleLayout" /> <filter class="org.apache.log4j.varia.LevelMatchFilter"> <param name="LevelToMatch" value="WARN" /> <param name="AcceptOnMatch" value="true" /> </filter> <filter class="org.apache.log4j.varia.DenyAllFilter" /> </appender> <logger name="foo"> <level value="WARN" /> <appender-ref ref="consoleAppender" /> <appender-ref ref="fileAppender" /> </logger> </log4j:configuration>
source share