Logback的学习最好到Logback官方文档上去,上边很细,很全。
配置
错误的配置
1 | xml复制代码 <!-- 日志文件输出 --> |
这个配置在日志文件大于10MB的时候会触发归档,但是FileNamePattern
配置的时间没有到达所以并不会触发,并且日志文件已经停止输出了。
正确的配置
1 | xml复制代码 <!-- 日志文件输出 --> |
该配置使用了基于时间和大小的归档策略,当单个日志文件大于2MB的时候,会触发归档,在归档文件名后边添加索引。并且归档后的文件总大小最大3GB,最多保存60天。
有一个小坑,maxFileSize
的值少写一个B会检测到错误。如下:
1 | xml复制代码<maxFileSize>2M</maxFileSize> |
appender
RollingFileAppender
可以归档日志文件,有2个重要的子组件RollingPolicy
和TriggeringPolicy
。TriggeringPolicy
负责触发的时间,RollingPolicy
负责触发时做什么。
TimeBasedRollingPolicy
TimeBasedRollingPolicy
实现了RollingPolicy
和TriggeringPolicy
,所以使用它的时候可以不用写TriggeringPolicy
TimeBasedRollingPolicy
的配置有一个必输的属性fileNamePattern
,用来定义归档文件的名称,并且推断出归档的时间。TimeBasedRollingPolicy
支持自动文件压缩,只要文件以.gz
或.zip
结尾。
SizeAndTimeBasedRollingPolicy
SizeAndTimeBasedRollingPolicy
可以通过时间归档文件的同时限制文件的大小。
这个时候 %i
是必须要有的,他是用在在当前按时间归档前,大小已经超出限制的时候,每个归档文件的序号
如下图:
FixedWindowRollingPolicy
摘自官方文档
1 | xml复制代码<configuration> |
该配置当单个日志文件超过5MB时触发FixedWindowRollingPolicy
策略,该策略如其名像滑动窗口一样。维护一个1-3的日志文件,tests.1.log.zip
,tests.2.log.zip
,tests.3.log.zip
。
如果test.log
超过5MB,会将tests.3.log.zip
删掉,tests.2.log.zip
重命名为tests.3.log.zip
,tests.1.log.zip
重命名为 tests.2.log.zip
,test.log
重命名为 tests.1.log.zip
,然后新的日志继续写test.log
,如此循环
SizeBasedTriggeringPolicy
他会检测激活的日志文件,一旦他超过设定的阈值,就会触发rollingPolicy来归档
本文转载自: 掘金