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

Different level of logs in different log files

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

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

我想要 InfoController.log 文件中的信息消息和 LoginController.log 文件中的错误消息

我该怎么做?

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

通常,一个配置有一个根记录器,它将接收所有事件。我建议这样做,这样配置的一部分就变成了:

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

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

<Loggers>
    <logger name="com.mvc.login" level="info" additivity="false">
        <AppenderRef ref="LoginController" level="error"/>
        <AppenderRef ref="InfoController" level="info"/>
    </logger>
  </Loggers>
  <Filters>
    <ThresholdFilter level="warn" onMatch="DENY" onMismatch="ACCEPT" />
  </Filters>

这将仅打印信息 log.If 您分配级别错误然后它将仅打印警告消息等。