2015-09-30 1 views
1

Я переношу приложение от log4j в log4j2.Что является эквивалентом DenyAllFilter в 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??? 

Просьба помочь. Благодарю.

ответ

1

В соответствии с docs, DenyAllFilter может использоваться для переключения с по умолчанию «Принимать все, если только не указано иное», для поведения фильтрации для поведения «отрицать все, если только не указано иное».

В Log4j 2 нет прямого эквивалента. Поскольку в любом случае вам нужно будет переписать свой собственный ModeFilter как Log4j 2 plugin, вы можете изменить условия приема/отклонения для этого фильтра.

+0

большое спасибо за ответ .. Remko. Я понимаю, что в Log4j2 в этом случае будут применяться только фильтры, определенные под , и другие фильтры, которые являются частью приложения, не будут отображаться. – sridhar

+0

Привет Ремко .. добавление еще .. ACCEPT принимает событие журнала, а DENY отрицает событие журнала. Если у меня есть только одно определение фильтра в приложении, и если событие журнала, связанное с этим приложением, будет отклонено, то в событии журнала будет отказано в регистрации, и никакие другие фильтры не будут применены к этому событию или журналу событий. Правильно ли я понимаю? Затем, чтобы реализовать DENYALLFILTER в log4j2, если я добавлю новый настраиваемый фильтр, который просто отрицает событие журнала, то это будет рассматриваться как DENYALLFILTER или будет частью составного фильтра, и даже действительные события журнала будут лишены из-за композиции , Просьба уточнить. – sridhar

+1

Если принимается один фильтр, событие принимается, и никакие другие фильтры (или уровень журнала событий) не будут проверяться. Если один фильтр отрицает, событие отбрасывается. Если фильтр возвращает NEUTRAL, тогда проверяются другие фильтры и, наконец, уровень журнала. См. Https://logging.apache.org/log4j/2.0/manual/filters.html –

Смежные вопросы