2016-12-19 14 views
1

私は、春のプロジェクトでロガーポリシーを作成しようとしています。時間とサイズに基づいたロガーバックアップポリシー

以下のロガーで、rollingfile.logが10Mbを超えるとという新しいファイルを作成するローリングポリシーを作成したいと考えています。だから私は1つの巨大なロガーファイルを持たずにログのバックアップを取ることができます。それを行う方法はありますか?

以下は私のlogback.xmlです。

<?xml version="1.0" encoding="UTF-8"?> 
    <configuration debug="true" scan="true" scanPeriod="30 seconds"> 
     <property name="LOG_PATH" value="D:/coinLogs" /> 
     <property name="LOG_ARCHIVE" value="${LOG_PATH}/archive" /> 

     <appender name="Console-Appender" class="ch.qos.logback.core.ConsoleAppender"> 
      <layout> 
       <pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n 
       </pattern> 
      </layout> 
     </appender> 

     <appender name="File-Appender" class="ch.qos.logback.core.FileAppender"> 
      <file>${LOG_PATH}/logfile.log</file> 
      <encoder> 
       <pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n 
       </pattern> 
       <outputPatternAsHeader>true</outputPatternAsHeader> 
      </encoder> 
     </appender> 

     <appender name="RollingFile-Appender" 
      class="ch.qos.logback.core.rolling.RollingFileAppender"> 
      <file>${LOG_PATH}/rollingfile.log</file> 
      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
       <fileNamePattern>${LOG_ARCHIVE}/rollingfile.log%d{yyyy-MM-dd}.log 
       </fileNamePattern> 
       <maxHistory>30</maxHistory> 
       <totalSizeCap>10MB</totalSizeCap> 
      </rollingPolicy> 
      <encoder> 
       <pattern>%msg%n</pattern> 
      </encoder> 
     </appender> 

     <appender name="Async-Appender" class="ch.qos.logback.classic.AsyncAppender"> 
      <appender-ref ref="RollingFile-Appender" /> 
     </appender> 

     <logger name="coinPay.logbackxml" level="info" additivity="false"> 
      <appender-ref ref="Console-Appender" /> 
      <appender-ref ref="File-Appender" /> 
      <appender-ref ref="Async-Appender" /> 
     </logger> 

     <!-- To remove extra hibernate logs --> 
     <logger name="org.hibernate"> 
      <level value="info" /> 
     </logger> 

     <root> 
      <appender-ref ref="Console-Appender" /> 
      <appender-ref ref="File-Appender" /> 
      <appender-ref ref="Async-Appender" /> 
     </root> 

    </configuration> 

答えて

1

合計サイズキャップはあなたが望むようにしていません。

<totalSizeCap>10MB</totalSizeCap> 

すべてのアーカイブログファイルの合計サイズが上限になります。あなたはそれが何をしているのかを理解するためにTimeBasedArchiveRemover::capTotalSizeを見ることができます。あなたがする必要がどのような

は、だからあなたの設定が含まれている必要がありSizeAndTimeBasedRollingPolicyTimeBasedRollingPolicyを変更し、<maxFileSize>10MB</maxFileSize>

を設定している:

<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> 
    <fileNamePattern>${LOG_ARCHIVE}/rollingfile.log%d{yyyy-MM-dd}.log 
    </fileNamePattern> 
    <maxFileSize>10MB<maxFileSize> 
    <maxHistory>30</maxHistory> 
</rollingPolicy> 
+0

を@robyこんにちは、SizeAndTimeBasedRollingPolicyは、「日付のログフォルダ」を削除だけではありませんフォルダ内にアーカイブされたファイル。それを達成するための設定はありますか? –

関連する問題