问题描述
我正在使用 log4j 进行日志记录.我有一个场景,我必须针对不同的严重性使用单独的日志记录.例如,对于包 foo,我必须在控制台中打印严重性为 ERROR 的消息,而我必须在日志文件中打印严重性为 WARN 的消息.我该如何配置我的 log4j.xml.
推荐答案
您可以为您的任务使用 LevelMatchFilter.此外,您不应忘记使用另一个过滤器 - DenyAllFilter - 作为过滤器链中的最后一个过滤器.
您的 log4j.xml 将如下所示:
<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>
问题描述
I am using log4j for logging. I have a scenario where I have to use seperate logging for different severity. For example, for package foo I have to print messages with severity ERROR in the console whereas I have to print messages with severity WARN in log file. How can I configure my log4j.xml for the same.
推荐答案
You may use LevelMatchFilter for your task. Also you should not forget to use another filter - DenyAllFilter - as the last filter in the chain of filters.
Your log4j.xml 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>
相关标签/搜索