以前的答案是錯:你可以有多個root
元素,每個都有一個關聯的日誌記錄level
和appender-ref
(我用的logback工作。版本>1.0.13
) 在這種情況下,你也必須把裏面你追加程序的過濾器,這樣的:
<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>
我'<記錄器名稱= 「ch.qos」 級= 「OFF」/> '並且它仍然記錄在兩個配置的appender中,怎麼可能? –
piechuckerr
我懷疑任何人都可以用盡可能少的信息來幫助你。如果你有問題需要解決,請打開一個新的問題,評論不是這個地方。 – sheltem
它似乎工作,但不僅是文檔,而且代碼顯示只支持一個根記錄器,所以我懷疑根記錄器的一些功能正在被遺漏。例如。如果您聲明2個根記錄器,並且其中一個具有不同的級別,那麼默認級別是什麼?請注意[源代碼](https://github.com/qos-ch/logback/blob/master/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java)如何創建和在構造函數中初始化_single_根記錄器。 – Rhubarb