SiftingAppender без дискриминатора значений по умолчанию

я используюSiftingAppenderиRollingFileAppenderдля разделения папок журналов с ключом дискриминатора.

      <appender name="TEST_LOGGER" class="ch.qos.logback.classic.sift.SiftingAppender">
  <discriminator>
    <key>discKey</key>
    <defaultValue>Default</defaultValue>
  </discriminator>
  <sift>
...
  </sift>
</appender>

Но мне просто нужны ключи дискриминатора, которые установлены, и не нужна папка с именемdefaultValue. есть ли способ просто разделить нужные папки и удалить другие?

1 ответ

После долгих поисков вLogbackдокументы, я обнаружил, что с помощьюfilteringметод, можно зарегистрировать требуемые значения и не регистрировать другие значения.

      <appender name="TEST_LOGGER" class="ch.qos.logback.classic.sift.SiftingAppender">
   <discriminator>
     <key>discKey</key>
     <defaultValue>Default</defaultValue>
   </discriminator>

  <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
   <evaluator class="ch.qos.logback.classic.boolex.JaninoEventEvaluator">
      <expression>
        mdc.get("discKey") == null
      </expression>
   </evaluator>
     <OnMismatch>NEUTRAL</OnMismatch>
     <OnMatch>DENY</OnMatch>
  </filter>

  <sift>
  ...
  </sift>
</appender>

Выше код не регистрируйтеDefaultпапка.

Другие вопросы по тегам