web-dev-qa-db-fra.com

Configuration de logback pour supprimer la journalisation de toutes les classes à l'intérieur d'un package

J'ai ce logback.xml parfaitement fonctionnel 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 package.

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

L'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, plusieurs enregistreurs, différents niveaux . Mais ai-je vraiment besoin d'écrire Java pour ça?

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

Merci d'avance!.

24
San

Si vous n'avez qu'un seul appender (contrairement à votre link qui avait besoin d'un filtre personnalisé), ou si tous vos appenders sont identiques, 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 quelque chose de BTW, et le XML n'est pas valide (il n'y a pas de <xml/> tag).

De plus, si vous utilisez Spring Boot, le modèle d'appender ressemble beaucoup à celui 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>
30
Dave Syer