我正在将应用程序从log4j迁移到log4j2

下面的代码段与log4j相关,并且添加了一个过滤器DenyAllFilter

<appender name="TEST_FILE" class="org.apache.log4j.RollingFileAppender">
  ...
  ...
  <filter class="com.test.it.ModeFilter">
      <param name="Mode" value="Test" />
      <param name="Deny" value="false" />
  </filter>
  <filter class="org.apache.log4j.varia.DenyAllFilter"/>
</appender>


是否也应在DenyAllFilter中定义log4j2?如果是这样,那么DenyAllFilter中的log4j2等效项是什么,以便可以将其添加到RollingFile中的log4j2.xml下,如下所述。

<RollingFile="TEST_FILE" other sttributes ...>
  ...
  ...
<ModeFilter name="ModeFilter" other attributes ... />
??? what is the equivalent of DenyAllFilter???


请帮忙。谢谢。

最佳答案

根据docs,DenyAllFilter可用于从默认的“除非另有说明,否则全部接受”过滤行为切换为“除非另有说明,否则全部拒绝”过滤行为。

在Log4j 2中没有与此直接等效的方法。由于无论如何您都需要将自定义ModeFilter重写为Log4j 2 plugin,因此您可能想要更改此过滤器的接受/拒绝条件。

08-06 00:45