2016-04-27 41 views
0

我們正在面臨應用程序中的logback設置(配置爲從IBM MQ管理器接收消息的JMS應用程序)中的一些問題。無論查看大小設置,它都會在每兩個小時後滾動到新文件。 但是在Fiorano等其他MQ管理器的情況下,時間更加糟糕,在每隔幾KB後滾動到新文件並且應用程序沒有停止記錄意味着沒有2小時的失效。Logback - 根據文件大小移動文件

以下是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

我們使用這些罐子 的logback經典-1.1.3.jar的logback 核心-1.1.3.jar SLF4J-API 1.7.13.jar 而且它沒有工作。可能是由於罐組合,但提供項目的時間線不能做更多的測試。可能我們只會回到log4j。 – aamir

+0

非常感謝...但我不清楚:這是否仍然執行「翻轉」/「歸檔刪除」(順便說一句,這是同樣的事情?)***僅基於音量***?不是''fileNamePattern> log/server_%d {yyyy-MM-dd} ...'這行是否意味着它每天也會翻轉?只有在音量的基礎上纔有辦法做到這一點? –

相關問題