2017-01-05 10 views
1

Я пытаюсь вставить информацию журнала в файлы на основе уровня журнала, используя следующую конфигурацию журнала. Я хотел бы вставить информацию журнала в каждый отдельный файл (например, информацию в файл info, отлаживать в файл отладки ..), чтобы достичь этого, я использую приведенный ниже файл конфигурации, и с этим я могу успешно вставить информацию в информационный файл. Но я не могу вставить отладочную информацию в файл debug.Pls, помогите мне в этом, как это сделать. Благодарю.Различные файлы журналов для разных уровней журнала в журнале регистрации

<property name="DEV_HOME" value="d:/log" /> 

<appender name="FILE-INSERT-DEBUG" 
    class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
     <level>DEBUG</level> 
     <onMismatch>DENY</onMismatch> 
    </filter>  

    <file>${DEV_HOME}/debug.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}/archived/debug.%d{yyyy-MM-dd}.%i.log.zip 
        </fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy 
      class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 

</appender> 

<appender name="FILE-INSERT-INFO" 
    class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
     <level>INFO</level> 

    </filter>  

    <file>${DEV_HOME}/INFO.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}/archived/INFO.%d{yyyy-MM-dd}.%i.log.zip 
        </fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy 
      class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 

</appender> 

<logger name="com.code" level="Debug" 
    additivity="false"> 
    <appender-ref ref="FILE-INSERT-DEBUG" /> 
</logger> 

    <logger name="com.code" level="Info" 
    additivity="false"> 
    <appender-ref ref="FILE-INSERT-INFO" /> 
</logger> 



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

ответ

1

1) Почему журналов отладки не получают печататься?

Запрос журнала уровня p, выданный регистратору, имеющему эффективный уровень q, включен, если p> = q.

Он предполагает, что уровни упорядочены следующим образом: TRACE < < DEBUG INFO < < WARN ОШИБКА.

Установите уровень корневого регистратора как «DEBUG», который является значением по умолчанию.

2) Изменение конфигурации Logback, как показано ниже,: -

<appender name="FILE-INSERT-DEBUG" 
    class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
     <level>DEBUG</level> 
     <onMismatch>DENY</onMismatch> 
    </filter>  

    <file>${DEV_HOME}/debug.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}/archived/debug.%d{yyyy-MM-dd}.%i.log.zip 
        </fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy 
      class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 

</appender> 

<appender name="FILE-INSERT-INFO" 
    class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
     <level>INFO</level> 
     <onMatch>ACCEPT</onMatch> 
    </filter> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
     <level>DEBUG</level> 
     <onMatch>DENY</onMatch> 
    </filter>  
    <file>${DEV_HOME}/INFO.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}/archived/INFO.%d{yyyy-MM-dd}.%i.log.zip 
        </fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy 
      class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 

</appender> 


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

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

+0

Идеальное решение. Спасибо Амит. –