Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将ExpressionFilter迁移到log4j2?_Java_Logging_Log4j_Log4j2 - Fatal编程技术网

Java 如何将ExpressionFilter迁移到log4j2?

Java 如何将ExpressionFilter迁移到log4j2?,java,logging,log4j,log4j2,Java,Logging,Log4j,Log4j2,我们正在从log4j1.x迁移到log4j2.x,配置文件格式已经发生了显著的变化。目前,我们的一个附加器上有以下过滤器: 它们旨在从日志中隐藏这两种类型的消息;第一个由引发异常的原因的内容决定,第二个由记录器的类决定。对于后者,我知道我们似乎可以为这个类设置一个Loggerconfig类并将其关闭,但这不起作用——也许这个第三方类在运行时覆盖了日志配置 在任何情况下,我都在试图找出如何将它们迁移到log4j2,因为不再出现ExpressionFilter。谢谢你的帮助 谢谢。对于过滤第一类

我们正在从log4j1.x迁移到log4j2.x,配置文件格式已经发生了显著的变化。目前,我们的一个附加器上有以下过滤器:


它们旨在从日志中隐藏这两种类型的消息;第一个由引发异常的原因的内容决定,第二个由记录器的类决定。对于后者,我知道我们似乎可以为这个类设置一个
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>