2017-01-05 4 views
1

아래의 로그백 구성을 사용하여 로그 수준을 기반으로 파일에 로그 정보를 삽입하려고합니다. 정보 파일에 정보, 디버그 파일에 디버그 정보 등 각 다른 파일에 로그 정보를 삽입하고 싶습니다. 아래의 구성 파일을 사용하고 있으며 정보 파일에 정보 정보를 성공적으로 삽입 할 수 있습니다. 하지만 디버그 파일에 디버그 정보를 삽입 할 수 없습니다. 감사.로그백의 로그 수준에 따라 다른 로그 파일

<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) 당사 디버그 로그가 인쇄되지 않아요?

효과적인 수준 Q를 갖는 기록 장치에 발행 한 수준 (p)의 로그 요청은 p> = Q 경우 활성화.

은 다음과 같이 레벨을 주문하는 것으로 가정합니다 : TRACE < DEBUG < 정보 <이 < 오류를 경고한다.

루트 로거 레벨을 기본값 인 "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

완벽한 솔루션입니다. Amit에게 감사드립니다. –

관련 문제