有什麼方法可以覆蓋logback配置嗎?我知道我們在名爲logback.xml的文件(通常存儲在路徑src/resources中)中定義了logback配置,並且我知道通過使用<include>
標籤,我們可以設置一個外部文件以添加到logback.xml,如下所示:覆蓋logback配置
<configuration>
<!--<include url="file:///d:/ServerConfig.xml"/>-->
<include file="${outPut}/ServerConfig.xml"/>
<logger name="Server" LEVEL="DEBUG">
<appender-ref ref="FILEOUT" />
</logger>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<!--<appender-ref ref="FILEOUT" />-->
</root>
</configuration>
但是如果我想重寫此默認配置(例如設定根記錄器,級別爲INFO)
這裏的方式是什麼包含的文件:
<included>
<!-- <property file="d:/ServerSysVar.properties"/>-->
<property file="${outPut}/ServerSysVar.properties"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILEOUT" class="ch.qos.logback.core.FileAppender">
<file>${Sys_Location}/Serverfile4.log</file>
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} %class{36}.%M %L CLIENT_PORT:%X{ClientPort}- %msg%n</pattern>
</encoder>
</appender>
<logger name="Service" LEVEL="DEBUG">
<appender-ref ref="FILEOUT" />
</logger>
<root>
<appender-ref ref="STDOUT" />
<!-- <appender-ref ref="FILEOUT" />-->
</root>
</included>
說有就是打算通過重寫配置與系統屬性來解決問題,在2011年報告中的錯誤 - http://jira.qos.ch/browse/LOGBACK- 239 – erkfel
這個討論表明了作者抗拒改變任何一些*學術*廢話的非凡的固執性。我想知道這個實現如何還能活着? – tomasb