如何用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中:
...