Подтвердить что ты не робот

Настройка журнала для подавления регистрации из всех классов внутри пакета

У меня есть этот отлично работающий logback.xml для консоли, который регистрирует все инструкции уровня отладки.

<?xml version="1.0" encoding="UTF-8"?>
  <configuration>
    <property name="CONSOLE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] --- %-40.40logger{39} : %m%n%wex"/>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
      <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>DEBUG</level>
      </filter>
      <encoder>
        <pattern>${CONSOLE_LOG_PATTERN}</pattern>
      </encoder>
    </appender>
    <root level="DEBUG">
      <appender-ref ref="CONSOLE"/>
    </root>
  </configuration>
</xml>

Теперь я хотел бы изменить это, чтобы запретить ведение журнала из всех регистраторов из определенного пакета.

Например, скажем, я хотел бы отключить все журналы уровня INFO из классов, принадлежащих org.apache.zookeeper

Одним из решений, которые я нашел, было создание настраиваемого фильтра, похожего на то, как оно указано здесь - logback: два приложения, несколько регистраторов и разные уровни. Но мне действительно нужно написать java для этого?

Comparing this problem to log4j, this can be easily accomplished by following  - 
log4j.logger.org.apache.zookeeper=WARN, CONSOLE

Спасибо заранее!

4b9b3361

Ответ 1

У вас есть только один appender (в отличие от ссылки, которую вы опубликовали), поэтому, если этот случай (или все ваши приложения одинаковы), почему бы это не работать?

<configuration>
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>...</pattern>
    </encoder>
  </appender>
  <root level="DEBUG">
    <appender-ref ref="CONSOLE"/>
  </root>
  <logger name="org.apache.zookeeper" level="WARN"/>
</configuration>

Я не думаю, что ThresholdFilter в вашем оригинале добавлял что-нибудь BTW, а XML недействителен (там нет тега <xml/>).

Кроме того, если вы используете Spring Boot, шаблон приложения выглядит очень похоже на значение по умолчанию, поэтому вы можете просто сделать это:

<configuration>
  <include resource="org/springframework/boot/logging/logback/basic.xml"/>
  <logger name="org.apache.zookeeper" level="WARN"/>
</configuration>