2015-09-21 2 views
0

Я знаю, что на этот вопрос был дан ответ, но в моем случае я пробовал каждую конфигурацию и все еще не работает. Мне нужен свежий взгляд на мой конфиг (я уверен, что я что-то пропустил). оба из приложений регистрируются на всех уровняхLogback: разные файлы для разных уровней журнала

Я хочу вести журнал info = = для всех пакетов на консоль и ошибки только erros для файла журнала. В моем случае оба из них регистрируют информацию

Вот конфигурация.

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<!-- CONSOLE --> 
<property name="LOG_PATTERN" value="%d [%thread] %-5level %logger{36} - %msg%n" /> 
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder> 
     <charset>UTF-8</charset> 
     <pattern>${LOG_PATTERN}</pattern> 
    </encoder> 
</appender> 

<!-- FILE FOR ERROR ONLY --> 

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
<file>/Users/dev/Desktop/JAC/logs/frontend/errors.log</file> 
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 

    <fileNamePattern>/Users/dev/Desktop/JAC/logs/frontend/errors_%d{yyyy-MM-dd}.%i.log</fileNamePattern> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
     <level>ERROR</level> 
     <onMatch>ACCEPT</onMatch> 
     <onMismatch>DENY</onMismatch> 
    </filter> 
    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
     <maxFileSize>5MB</maxFileSize> 
    </timeBasedFileNamingAndTriggeringPolicy> 
    <maxHistory>30</maxHistory> 
</rollingPolicy> 
<encoder> 
    <charset>UTF-8</charset> 
    <pattern>${LOG_PATTERN}</pattern> 
</encoder> 
</appender> 


<root level="INFO"> 
    <appender-ref ref="CONSOLE" /> 
</root> 

<root level="INFO"> 
    <appender-ref ref="FILE" /> 
</root> 

</configuration> 

Заранее спасибо

+0

У вас есть 2 уровня корня = INFO, это нормально? – vincent

+0

Я нашел где-то в SO. возможно, это не так. –

+0

это, конечно, не так, поместите один корневой уровень в INFO, а второй в ОШИБКИ – vincent

ответ

1

Может быть, это не более красивое решение. Но в этом случае log-уровень INFO регистрируется в консоли, и ошибка регистрируется в файле. Уровень отладки не будет распечатан. И INFO и ERROR находятся только в одном выходе. И мой пакет приложений - fr.myuser.

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <property name="DEV_HOME" value="/home/myUser" /> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
      <level>INFO</level> 
      <onMatch>ACCEPT</onMatch> 
      <onMismatch>DENY</onMismatch> 
     </filter> 
     <layout class="ch.qos.logback.classic.PatternLayout"> 
      <Pattern> 
       %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n 
      </Pattern> 
     </layout> 
    </appender> 

    <appender name="FILE-ERROR" 
     class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
      <level>ERROR</level> 
      <onMatch>ACCEPT</onMatch> 
      <onMismatch>DENY</onMismatch> 
     </filter> 
     <file>${DEV_HOME}/error.log</file> 
     <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
      <Pattern> 
       %d{yyyy-MM-dd HH:mm:ss} - %msg%n 
      </Pattern> 
     </encoder> 

     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <!-- rollover daily --> 
      <fileNamePattern>${DEV_HOME}/error.%d{yyyy-MM-dd}.%i.log 
         </fileNamePattern> 
      <timeBasedFileNamingAndTriggeringPolicy 
       class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
       <maxFileSize>10MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
     </rollingPolicy> 

    </appender> 

    <!-- Send logs to console --> 
    <logger name="fr.myuser" level="INFO"> 
     <appender-ref ref="STDOUT" /> 
    </logger> 

    <root level="ERROR"> 
     <appender-ref ref="FILE-ERROR" /> 
    </root> 

</configuration> 
+0

Спасибо, что работает –

Смежные вопросы