我在我的应用程序中使用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>
答案 0 :(得分:1)
当您选择SizeAndTimeBasedRollingPolicy时,您要求按日期归档文件,同时限制每个日志文件的大小。 因此,如果日期更改,则将存档当前日志文件(它已旧,它指的是旧日期)并将生成新文件。 我认为,为了您的目的,FixedWindowRollingPolicy可能更好:它没有按日期定义回滚策略,因此更改日期不会产生任何影响。此外,您可以选择要归档的文件数量及其大小。