不同日志文件中不同级别的日志
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 您分配级别错误然后它将仅打印警告消息等。
我们如何编写一个简单的 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 您分配级别错误然后它将仅打印警告消息等。