Concrete logger for levels

I am using log4j for logging. I have a scenario in which I have to use a separate log for varying degrees of severity. For example, for the foo package, I have to print messages with ERROR severity in the console, while I have to print messages with WARN severity in the log file. How can I customize my log4j.xml file for this.

+4
source share
1 answer

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> 
+5
source

All Articles