2017-01-11 6 views
0

Я хотел бы видеть весь вывод уровня информации с консоли и ТОЛЬКО предупреждать вывод из файла.Конфигурация выхода корневого сервера

Выход на уровне информации на консоли четко отображается, но все выходные данные также сохраняются в файле, а не только выдает сигнал уровня.

Вот моя конфигурация журнала. Что-то не так?

<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <pattern>%d{HH:mm:ss.SSS} %-5level %logger{20} [%mdc{threadid}] - [%mdc{useroid} : %mdc{sessionid}]%msg%n</pattern> 
    </encoder> 
</appender> 

<appender name="consoleFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <prudent>true</prudent> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>log/console.%d{yyyy-MM-dd}.log</fileNamePattern> 
     <maxHistory>30</maxHistory> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level | %msg%n</pattern> 
    </encoder> 
</appender> 


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

<root level="WARN"> 
    <appender-ref ref="consoleFileAppender" /> 
</root> 
+0

Вы не можете иметь два тега корневого уровня –

ответ

1

Для вашей цели я предлагаю использовать фильтры в вашем приложении. Более конкретно, если вы хотите видеть только INFO на консоли, вы можете добавить определенный LevelFilter в консольный appender, если вы хотите, чтобы все журналы равны или выше INFO, вы можете использовать ThresholdFilter.

Здесь есть возможное решение для вашей задачи:

<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
      <level>INFO</level> 
      <onMatch>ACCEPT</onMatch> 
      <onMismatch>DENY</onMismatch> 
     </filter> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <pattern>%d{HH:mm:ss.SSS} %-5level %logger{20} [%mdc{threadid}] - [%mdc{useroid} : %mdc{sessionid}]%msg%n</pattern> 
    </encoder> 
</appender> 

<appender name="FileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <prudent>true</prudent> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
        <level>WARN</level> 
        <onMatch>ACCEPT</onMatch> 
        <onMismatch>DENY</onMismatch> 
    </filter> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>log/console.%d{yyyy-MM-dd}.log</fileNamePattern> 
     <maxHistory>30</maxHistory> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level | %msg%n</pattern> 
    </encoder> 
</appender> 

<root level="INFO"> 
    <appender-ref ref="console" /> 
    <appender-ref ref="FileAppender" /> 
</root> 
Смежные вопросы