2017-01-05 19 views
1

以下のログバック設定を使用してログレベルに基づいてファイルにログ情報を挿入しようとしています。私はログファイルを情報ファイルに埋め込み、デバッグファイルにデバッグするための情報など、それぞれのファイルにログ情報を挿入したいと思っています。以下の設定ファイルを使用しています。しかし、私はデバッグ情報をデバッグファイルに挿入することができません.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)なぜデバッグログが印刷され取得されていませんか?

有効レベルが qのロガーに発行されたレベルpのログ要求は、p> = qの場合に有効になります。

それは次のようにレベルが発注されていることを前提としていますTRACE < DEBUG < INFO <が< ERRORを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

完璧なソリューション。おかげでアミット。 –

関連する問題