logback配置仅根据文件大小进行滚动
1、logback的日志策略
1)ch.qos.logback.core.rolling.TimeBasedRollingPolicy
按照时间滚动,例如按天或按月。
2)ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy
按日期归档文件,但同时限制每个日志文件的大小(时间与大小)
3)ch.qos.logback.core.rolling.FixedWindowRollingPolicy
滚动时,根据固定窗口算法重命名文件,可以设置最大(maxIndex)或最小(minIndex)的窗口索引,搭配 < triggeringPolicy >标签可以实现根据文件大小进行滚动的需求。
2、实例
注:file 属性必须设置,不然会报错 The File name property must be set before using this rolling policy...
xml
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/data/logs/test.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>/data/logs/test_%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>
/data/logs/test.log 是日志名
fileNamePattern中的 %i 是窗口索引,minIndex与maxIndex是窗口数量的最小值以及最大值
maxFileSize 就是文件大小滚动的条件
3、实现结果
shell
-rw-r--r-- 1 root root 3233341 8月 23 09:33 test.log
到达100M会根据序号递增 test_1.log -> test_2.log -> test_3.log
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!