2013-03-28 6 views
3

В Log4j легко установить разные приложения в вашем приложении на разных уровнях (это особенно полезно для отладки). Есть ли простой способ сделать это, кроме создания собственного фильтра?Как выполнить различные протоколирования для разных пакетов?

Я попытался создать тег в корневом теге или после имени которого является пакет (т. Е. Напоминающий Log4J), а затем поместил его в него, но он не работает.

Итак, существует ли способ LogBack для определения логгеров и/или уровней ведения журнала для определенных пакетов, для которых не требуется специальная реализация фильтра?

ответ

5

Я использую Play! веб-приложения и имеют разные уровни журналов для разных пакетов. Вы можете указать пакет на имя <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