Configuration de logback pour supprimer la journalisation de toutes les classes d'un package


J'ai ce logback parfaitement fonctionnel.xml pour la console qui enregistre toutes les instructions de niveau de débogage.

<?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>

Maintenant, je voudrais modifier cela pour supprimer la journalisation de tous les enregistreurs d'un certain paquet.

Par exemple, disons que je voudrais supprimer tous les journaux de niveau INFO à partir des classes appartenant à org.Apache.zookeeper

Une des solutions que j'ai trouvées a été de créer un filtre personnalisé, similaire à la façon dont il est indiqué ici- logback: Deux appenders, enregistreurs multiples, différents niveaux. Mais ai-je vraiment besoin d'écrire java pour cela?

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

Merci d'avance!.

Author: Community, 2014-06-06

1 answers

Si vous n'avez qu'un seul appender (contrairement à votre link qui avait besoin d'un filtre personnalisé), ou si tous vos appenders sont les mêmes, cela devrait fonctionner:

<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>

Je ne pense pas que le ThresholdFilter dans votre original ajoutait quoi que ce soit BTW, et le XML n'est pas valide (il n'y a pas de balise <xml/>).

De plus, si vous utilisez Spring Boot, le modèle appender ressemble beaucoup au modèle par défaut, vous pouvez donc probablement le faire:

<configuration>
  <include resource="org/springframework/boot/logging/logback/basic.xml"/>
  <logger name="org.apache.zookeeper" level="WARN"/>
</configuration>
 24
Author: Dave Syer, 2018-02-27 10:06:58