防止每天滚动日志

时间:2017-01-10 07:15:41

标签: logging logback

我在我的应用程序中使用logback框架(1.8),我设置了滚动策略,以便最大文件大小为5MB,最多可以保留10天,最大总大小为100 MB,现在一切正常,但是我注意到,无论滚动策略如何,每天都会创建一个新的日志文件,例如,昨天,最新的日志文件是10KB,当我今天来到并做了一些操作时,日志语句被添加到新的日志文件中并且最新其中一个10KB已存档。你知道我怎么能阻止这个。

<configuration scan="true" scanPeriod="30 seconds">
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/opt/MoICT_Logs/IDM/IDM.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>/opt/MoICT_Logs/IDM/IDM-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>10</maxHistory>
            <maxFileSize>5MB</maxFileSize>
            <totalSizeCap>100MB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d{yyyy-MM-dd;HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
        </encoder>
    </appender> 
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d{yyyy-MM-dd;HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
        </encoder>
    </appender>
    <logger name="jo.egov.portal" level="DEBUG" additivity="false">
       <appender-ref ref="FILE" />
    </logger>
    <logger name="org.springframework" level="INFO" additivity="false">
       <appender-ref ref="FILE" />
    </logger>
    <root level="INFO">          
        <appender-ref ref="STDOUT" />
    </root>  
</configuration>

1 个答案:

答案 0 :(得分:1)

当您选择SizeAndTimeBasedRollingPolicy时,您要求按日期归档文件,同时限制每个日志文件的大小。 因此,如果日期更改,则将存档当前日志文件(它已旧,它指的是旧日期)并将生成新文件。 我认为,为了您的目的,FixedWindowRollingPolicy可能更好:它没有按日期定义回滚策略,因此更改日期不会产生任何影响。此外,您可以选择要归档的文件数量及其大小。