如何用log4j2只记录一个级别?

我在我的应用程序中使用log4j2。

我想要的是一切都要去’调试’去控制台,一切都要去’info’去myapp.log,只有’info’去’myapp-audit.log’。

原因是,INFO主要包括对数据的成功修改(例如“用户创建”,“用户更新”,“用户删除”等)。 如果是有效的数据修改审计日志。

但我无法弄明白该怎么做。

如何才能获得“info”以登录“myapp-audit.log”? 这是我目前的配置……

                      

如果在appender-ref中指定INFO,则appender将接收INFO,WARN,ERROR和FATAL事件。 您可以通过过滤掉WARN,ERROR和FATAL级别事件来进一步限制为仅INFO:

            

你不能直接这样做,因为info级别包括“上面”的一切 – 警告,错误,致命。 您可以做的是创建一个单独的审计记录器。

在课堂里:

 Logger log = LogManager.getLogger("audit"); 

在xml中:

    

或者您可以使用RoutingAppender (您可以使用除ThreadContext其他内容):

 ThreadContext.put("ROUTINGFLAG", "audit"); log.info("..."); ThreadContext.remove("ROUTINGFLAG"); 

在xml中:

 ...