2016-04-27 5 views
0

アプリケーションでログバック設定に問題が発生しました(IBM MQマネージャーからメッセージを受信するように構成されたJMSアプリケーション)。サイズ設定に関係なく、2時間ごとに新しいファイルに移動します。 しかし、Fioranoのような他のMQマネージャの場合、時間はさらに悪く、数KBごとに新しいファイルにロールオーバーし、アプリケーションによるログ記録の停止がないということは、2時間が経過していないことを意味します。ログバック - サイズに基づいてファイルをロールオーバーする

以下はlogback.xmlです。

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <appender name="FILEDEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <File>mylogfile.log</File> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 

      <fileNamePattern>mylogfile.%d{yyyy-MM-dd HH-mm}.%i.log</fileNamePattern> 
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">    
       <maxFileSize>10MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
     </rollingPolicy>  
     <encoder> 
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
     <prudent>true</prudent> 
    </appender> 

    <logger name="com.base22" level="TRACE"/> 

    <root level="info"> 
    <appender-ref ref="FILEDEBUG" /> 
    </root> 

    <logger name="org.springframework.transaction.jta"> 
    <level value="OFF"/> 
    </logger> 
</configuration> 

質問:ロールオーバーのための時間を設定したり、時間に基づいてロールオーバーには全くそれを停止するには、最新のlogbackのリリースでの方法はありますか? fiorano MQマネージャの場合の動作を制御する方法。

答えて

0

設定ファイル:次のバージョンが一緒に仕事

<?xml version="1.0" ?> 
    <configuration> 
    <!-- CONSOLE IF REQUIRED --> 
    <!-- 
     <appender class="ch.qos.logback.core.ConsoleAppender" name="CONSOLE"> 
     <encoder> 
      <pattern>[%p] [%thread] %logger - %msg%n</pattern> 
     </encoder> 
     </appender> 
    --> 
    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="FILE"> 
     <File>log/server.log</File> 
     <Append>true</Append> 
     <BufferedIO>true</BufferedIO> 
     <ImmediateFlush>false</ImmediateFlush> 
     <encoder> 
     <pattern>%d{ISO8601} [%thread] %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>log/server_%d{yyyy-MM-dd}.%i.log</fileNamePattern> 
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
       <maxFileSize>10MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
      <!-- keep 30 days' worth of history --> 
      <maxHistory>30</maxHistory> 
      <!-- up to 10 GB max --> 
      <totalSizeCap>10GB</totalSizeCap> 
    </rollingPolicy> 
    </appender> 

    <root> 
    <level value="INFO"/> 
    <appender-ref ref="CONSOLE"/> 
    <appender-ref ref="FILE"/> 
    </root> 

    <logger name="Main"> 
    <level value="DEBUG" /> 
    </logger>  

    <logger name="org.apache"> 
    <level value="INFO"/> 
    </logger> 

    <logger name="ch.qos"> 
    <level value="WARN"/> 
    </logger> 

</configuration> 

  • log4jのオーバーSLF4J-1.7.7.jar
  • logback-古典-1.1.2.jar
  • logback-core-1.1.2.jar
  • slf4j-api-1.7.7.jar
ダミーのテストを実行した後

(ログレコードの2M)ログフォルダ:

1,947,777 server.log 
10,486,143 server_2016-04-28.0.log 
10,485,760 server_2016-04-28.1.log 
10,485,760 server_2016-04-28.10.log 
10,485,760 server_2016-04-28.11.log 
10,485,760 server_2016-04-28.2.log 
10,485,760 server_2016-04-28.3.log 
10,485,760 server_2016-04-28.4.log 
10,485,760 server_2016-04-28.5.log 
10,486,272 server_2016-04-28.6.log 
10,485,760 server_2016-04-28.7.log 
10,485,760 server_2016-04-28.8.log 
10,485,760 server_2016-04-28.9.log 

はそれがお役に立てば幸いです。

+0

答えをいただきありがとうございます。更新された設定を統合しようとしています。働いていると更新されます。 – aamir

+0

は、我々はこれらのjarファイル logback-古典-1.1.3.jar logback-コア-1.1.3.jar SLF4J-API-1.7.13.jar を使用していて、それが働いたdidntの。ジャーの組み合わせに起因するかもしれませんが、プロジェクトのタイムラインがさらにテストを行うことはできません。私たちはlog4jだけに戻っているかもしれません。 – aamir

+0

ありがとうございます...しかし、私は明確ではありません:これはまだ "ロールオーバー"/"アーカイブの削除"(これは同じ方法ですか?)***ボリューム***に基づいて***を実行しますか? ' log/server_%d {yyyy-MM-dd} ...という行は、毎日ロールオーバーすることも意味していませんか?ボリュームに基づいてのみ行う方法はありますか? –

関連する問題