java - 在文件大小上,Logback滚动

  显示原文与译文双语对照的内容
0 0

我正在使用 logback 1.0.13. 我希望我的日志文件仅根据文件大小来滚动。 如果这需要 2小时或者 2年时间,我不会。 我在想怎么这么做是有问题的。 我的附加组件配置如下:


<appender name="serverFaultFile"
 class="ch.qos.logback.core.rolling.RollingFileAppender">
 <file>/folder/to/log/file.log</file>
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 <fileNamePattern>/folder/to/log/file-%d{yyyy-MM}.%i.log</fileNamePattern>
 <MaxHistory>2</MaxHistory>
 <cleanHistoryOnStart>true</cleanHistoryOnStart>
 <timeBasedFileNamingAndTriggeringPolicy
 class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
 <maxFileSize>10MB</maxFileSize>
 <MaxHistory>9</MaxHistory>
 </timeBasedFileNamingAndTriggeringPolicy>
 </rollingPolicy>
 <encoder>
 <pattern>[%p] [%d{ISO8601}] [%c] [%m]%n</pattern>
 </encoder>
</appender>

这个解决方案每月都会滚动,这不是我所需要的。 我尝试完全删除 -%d {dateformat} 修饰符,但是该文件从未创建/记录到。 我尝试了修饰符 %G 和 %yyyy,,但每月都像logback一样细粒度,显然允许我获得( 请参见这里 Bug 报告。) 。 我犯了什么错?

时间: 原作者:

0 0

你需要一个 SizeBasedTriggeringPolicy: http://logback.qos.ch/manual/appenders.html#SizeBasedTriggeringPolicy,可能与FixedWindowRollingPolicy组合。

以前是一个评论,不确定它是否有自己的答案,但是这里是。 ; )

...