登录 - 根据大小滚动更新文件



我们在应用程序(配置为从 IBM MQ 管理器接收消息的 JMS 应用程序)中的回日志设置方面遇到了一些问题。无论查看大小设置,它每两个小时都会滚动到新文件。但是对于其他一些 MQ 管理器(如 Fiorano),时间甚至更糟,它每隔几 KB 就会滚动到新文件,并且应用程序不会停止日志记录,这意味着没有 2 小时的流逝。

下面是回.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 版本中,是否有办法配置滚动更新的时间或完全停止滚动更新以基于时间进行滚动更新?以及如何控制费奥拉诺MQ管理器的行为。

配置文件:

<?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-over-slf4j-1.7.7.jar
  • 登录经典-1.1.2.jar
  • 登录核心-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

希望对您有所帮助。

最新更新