J'utilise avec plaisir SLF4J avec déconnexion et j'utilise 2 appenders pour ROOT logger.
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
Comment pourrions-nous avoir des niveaux de log différents pour les deux appenders? J'ai toujours besoin de tous les messages ROOT-logger.
Tous les journaux doivent faire partie de la sortie (donc l'enregistreur ROOT est nécessaire).
La réponse précédente est incorrecte: vous pouvez avoir plusieurs éléments root
, chacun avec une journalisation associée level
et un appender-ref
(Je travaille avec logback.version> 1.0.13
) Dans ce cas, vous devez également mettre un FILTRE à l'intérieur de vos annexes, comme ça:
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<!-- To enable JMX Management -->
<jmxConfigurator/>
<appender name="console-info" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<appender name="console-debug" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<pattern>[%d{ddMMMyyyy HH:mm:ss.SS}]%-5level %logger{45} - %msg %n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="console-info"/>
</root>
<root level="debug">
<appender-ref ref="console-debug"/>
</root>