不同级别的日志在不同的日志文件中

时间:2015-02-26 10:51:58

标签: log4j2

我们如何编写一个简单的log4j2.xml文件,其中包含不同级别的日志进入不同的文件?

例如,我们有错误日志我需要将所有错误日志消息推送到一个日志文件中,并将所有信息日志消息推送到另一个文件中。

我希望InfoController.log文件中的信息消息和LoginController.log文件中的错误消息

我该怎么做?

3 个答案:

答案 0 :(得分:9)

最后通过这样做得到答案我得到了不同文件中的日志。

<Loggers>
    <logger name="com.mvc.login" level="info" additivity="false">
        <AppenderRef ref="LoginController" level="error"/>
        <AppenderRef ref="InfoController" level="info"/>
    </logger>
  </Loggers>

答案 1 :(得分:1)

记录器必须具有唯一的名称。配置中的第二个记录器将替换第一个记录器,这解释了为什么没有看到第一个记录器引用的appender的任何输出。

通常,配置具有将接收所有事件的根记录器。我建议这样做,以便配置的一部分成为:

<Loggers>
    <logger name="com.mvc.login" level="error" additivity="false">
        <AppenderRef ref="LoginController"/>
    </logger>
   <root level="trace">
        <AppenderRef ref="InfoController"/>
    </root>
</Loggers>

答案 2 :(得分:0)

  <Filters>
    <ThresholdFilter level="warn" onMatch="DENY" onMismatch="ACCEPT" />
  </Filters>

这将仅打印信息日志。如果您指定级别错误,则它将仅打印警告消息等。