Java 如何将ExpressionFilter迁移到log4j2?
我们正在从log4j1.x迁移到log4j2.x,配置文件格式已经发生了显著的变化。目前,我们的一个附加器上有以下过滤器:Java 如何将ExpressionFilter迁移到log4j2?,java,logging,log4j,log4j2,Java,Logging,Log4j,Log4j2,我们正在从log4j1.x迁移到log4j2.x,配置文件格式已经发生了显著的变化。目前,我们的一个附加器上有以下过滤器: 它们旨在从日志中隐藏这两种类型的消息;第一个由引发异常的原因的内容决定,第二个由记录器的类决定。对于后者,我知道我们似乎可以为这个类设置一个Loggerconfig类并将其关闭,但这不起作用——也许这个第三方类在运行时覆盖了日志配置 在任何情况下,我都在试图找出如何将它们迁移到log4j2,因为不再出现ExpressionFilter。谢谢你的帮助 谢谢。对于过滤第一类
它们旨在从日志中隐藏这两种类型的消息;第一个由引发异常的原因的内容决定,第二个由记录器的类决定。对于后者,我知道我们似乎可以为这个类设置一个Logger
config类并将其关闭,但这不起作用——也许这个第三方类在运行时覆盖了日志配置
在任何情况下,我都在试图找出如何将它们迁移到log4j2,因为不再出现ExpressionFilter
。谢谢你的帮助
谢谢。对于过滤第一类邮件,即按内容过滤,您可以使用-
我已经说过,出于某种原因,关闭记录器不起作用,所以第二个没有帮助。第一个可能有效,但没有原始日志那么具体,原始日志只是查看异常,而不是实际的日志消息。@tyrel关于第二点,您还没有在问题中写下如何配置记录器。可能是您没有正确配置记录器,这就是我编写示例的原因。另一件事是使用Logger过滤日志,这是一种标准且定义良好的方式。如果它不适用于您,则可能是记录器名称不同。检查记录器名称并进行相应设置。对于第一个,这是log4j2提供的。如果你能找到其他方法,我很高兴看到并了解到这一点。
<Filters>
<RegexFilter regex="(?s).*?HTTP upgrade is not supported by the AJP protocol.*?" onMatch="DENY" onMismatch="ACCEPT" />
</Filters>
<Logger name="org.atmosphere.container.JSR356Endpoint" level="OFF" additivity="false">
<!--Write loggers here-->
</Logger>