2011-04-25 26 views
18

共享一個編碼器/多模式間的Appender這是我首次涉足的logback的世界,但是我不能,我可以一次定義編碼器/模式和多個追加程序之間共享文檔中的任何地方。任何想法如何做到這一點?在的logback

回答

14

任何有興趣我也從的logback文檔的Chapter 4發現這個小寶石:「每個佈局/編碼器與一個關聯的,只有一個附加器,被稱爲擁有appender的。」這對我閱讀,就好像這是不可能的附加目的地共享同一個編碼器實例。

+0

我一直以編程方式創建appender,編碼器和佈局。我覺得上面的是真實的:當我試圖共享編碼器之間追加程序,我剛剛結束了只有一個附加器活躍(大概是因爲編碼結果只被附加在最後一個我添加它)。 – 2013-03-28 08:18:47

+2

同樣在此從配置部分:「請注意,每個附加器具有其自己的編碼器的編碼器通常不設計成通過多個附加目的地共享這同樣適用於佈局真這樣,的logback配置文件不提供任何語法手段。共享編碼器或佈局「。 – 2013-03-28 08:20:42

33

模式是可重複使用的與variable substitution

<configuration> 

    <property name="defaultPattern" 
     value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" /> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>${defaultPattern}</pattern> 
     </encoder> 
    </appender> 

    <root level="debug"> 
     <appender-ref ref="STDOUT" /> 
    </root> 
</configuration> 
+1

+1表示變量替換。 – 2013-02-12 12:18:54