Java 编辑日志消息-LogEventFactory vs RewriteAppender
我工作的应用程序必须屏蔽日志中的一些敏感数据,因此我必须以某种方式编辑它们。但是,它还将一些变量存储在Java 编辑日志消息-LogEventFactory vs RewriteAppender,java,performance,logging,log4j2,Java,Performance,Logging,Log4j2,我工作的应用程序必须屏蔽日志中的一些敏感数据,因此我必须以某种方式编辑它们。但是,它还将一些变量存储在ThreadLocal中,并将它们放入日志中。通常,我会在appender中使用PatternLayout,将它们放入记录的字符串中。不幸的是,如果日志是异步执行的,那么记录器就不能访问ThreadLocal变量 我已经使用LogEventFactory解决了这个问题。我将布局作为log4j2.xml中声明的属性传递给记录器,然后在自定义事件工厂中执行格式化。看起来是这样的: <Async
ThreadLocal
中,并将它们放入日志中。通常,我会在appender中使用PatternLayout
,将它们放入记录的字符串中。不幸的是,如果日志是异步执行的,那么记录器就不能访问ThreadLocal
变量
我已经使用LogEventFactory
解决了这个问题。我将布局作为log4j2.xml中声明的属性传递给记录器,然后在自定义事件工厂中执行格式化。看起来是这样的:
<AsyncLogger name="AsyncLogger">
<Property name="layout" value="%d %x{var1} %x{var2} %x{var3}/>
<AppenderRef="ref"/>
<AsyncLogger/>
在这个问题上寻找一些解决方案。在这个问题上寻找一些解决方案。