2013-03-28 55 views
3

在Log4j中,很容易在應用程序中以不同的級別記錄不同的包(這對調試特別有用)。除了創建自己的過濾器之外,還有一種簡單的方法嗎?如何針對不同的包進行不同的日誌記錄?

我試圖在根標籤內創建一個標籤,或者在包名後面(即讓人聯想到Log4J)創建一個標籤,然後在其中放置appender,但它不起作用。

那麼,是否有內置LogBack方法來定義某些不需要自定義過濾器實現的軟件包的記錄器和/或日誌記錄級別?

回答

5

我正在使用Play! web應用程序,並針對不同的包具有不同的日誌級別您可以使用<logger> element的名稱指定軟件包。

我的配置是:

<configuration> 

    <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel"/> 

    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
     <file>${application.home}/logs/application.log</file> 
     <encoder> 
      <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern> 
     </encoder> 
    </appender> 
    <appender name="TIMESTAMP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 

     <file>${application.home}/logs/batches/current.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy" maxHistory="720"> 
      <fileNamePattern>${application.home}/logs/batches/archived/%d{yyyy/MM/dd}.gz</fileNamePattern> 
     </rollingPolicy> 
     <encoder> 
      <pattern>{mpoplib} %date - [%level] in %thread %n%message%n%xException%n</pattern> 
     </encoder> 
    </appender> 


    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern> 
     </encoder> 
    </appender> 

    <logger name="play" level="INFO"> 
     <appender-ref ref="FILE"/> 
    </logger> 
    <logger name="application" level="INFO"> 
     <appender-ref ref="FILE"/> 
    </logger> 
    <logger name="ru.kupikupon.mpoplib" level="DEBUG"> 
     <appender-ref ref="TIMESTAMP_FILE"/> 
    </logger> 


    <root level="DEBUG"> 
     <appender-ref ref="STDOUT"/> 
    </root> 

</configuration> 
+0

啊哈!我沒有任何''元素。我正在嘗試創建''元素。謝謝! – ArtB

相關問題