You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Logback配置FixedWindowRollingPolicy的maxIndex为300仅生成22个日志文件

问题根因

你遇到的是logback旧版本中FixedWindowRollingPolicy的硬编码限制问题:

  • logback 1.2.x及更早版本中,FixedWindowRollingPolicy内置了常量MAX_WINDOW_SIZE = 20,只要你配置的归档窗口大小(maxIndex - minIndex + 1)超过20,logback会自动裁剪maxIndex保证窗口大小不超过20
  • 你配置了minIndex=2,所以实际生效的归档文件索引范围是2~21,合计20个归档文件,加上当前正在写入的Test.log、以及滚动过渡时生成的Test.1.log,总文件数刚好是22,和你观察到的现象完全吻合。

解决方案

有三种可行的解决方法:

  • 升级logback版本到1.3.0-alpha1及以上,该版本开始将MAX_WINDOW_SIZE的上限调整到了1000,完全可以满足你设置maxIndex=300的需求
  • 替换滚动策略为SizeAndTimeBasedRollingPolicy,该策略没有maxIndex的硬编码上限,同时支持按时间和文件大小双重维度滚动,更灵活,配置示例如下:
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  <fileNamePattern>/home/ec2-user/production/logs/Test.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  <maxFileSize>10MB</maxFileSize>
  <maxHistory>300</maxHistory>
  <totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
  • 如果你必须使用当前版本的logback且要保留FixedWindowRollingPolicy,可以自定义类继承FixedWindowRollingPolicy,重写setMaxIndex方法,跳过内置的上限校验逻辑,配置时替换成你自己的实现类即可。

内容的提问来源于stack exchange,提问作者Kuldeepsinh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:27:00