Как программно отключить BurstFilter и включить его с некоторыми параметрами в log4j2? - PullRequest
0 голосов
/ 27 сентября 2019

Я планирую использовать log4j2's burstFilter в моем приложении для управления пакетной регистрацией.Идея состоит в том, чтобы отключить его до тех пор, пока администратор действительно не захочет его использовать (я планирую дать возможность в графическом интерфейсе приложения получать параметры от пользователя и активировать burstFilter соответственно).

Я изучил егодокументацию и понял, что это просто изменение конфигурации внутри файла log4j2.xml.Эта конфигурация xml будет так или иначе связана с приложением, и я включу фильтр следующим образом ..

<Console name="console">
 <PatternLayout pattern="%-5p %d{dd-MMM-yyyy HH:mm:ss} %x %t %m%n"/>
 <filters>
  <Burst level="INFO" rate="16" maxBurst="100"/>
 </filters>
</Console>

Теперь здесь rate и maxBurst поля установлены на некоторые значения, а это не то, чтоЯ ожидаю по умолчанию.Одно из решений, о котором я подумал, - просто не использовать тег <filters> по умолчанию и явно записывать в log4j2.xml, как только пользователь установит эти параметры в графическом интерфейсе, как показано ниже.

<Burst level="INFO" rate="16" maxBurst="100"/>

ThisПохоже, это самое простое решение, поэтому мне было интересно, есть ли какой-либо атрибут по умолчанию, который я могу переключить, чтобы включить или выключить фильтр.

Ожидание: по умолчанию log4j2.xml:

 <filters>
  <Burst Activated="False" rate="16" maxBurst="100"/>
 </filters>

Если пользователь хочет активировать его:

 <filters>
  <Burst Activated="True" rate="16" maxBurst="100"/>
 </filters>

Любая помощь будет оценена.Спасибо

...