当前位置:网站首页>logback中RollingFileAppender属性简介说明
logback中RollingFileAppender属性简介说明
2022-07-29 06:58:00 【qq_25073223】
转自:
logback中RollingFileAppender属性简介说明
下文笔者讲述logback中RollingFileAppender属性的设置方法分享,如下所示:
logback中RollingFileAppender用于滚动记录文件 先将日志记录到指定文件 当符合某个条件时,将日志记录到其他文件 RollingFileAppender属性
<file>:被写入的文件名,可以是相对目录,也可以是绝对目录
如果上级目录不存在会自动创建,没有默认值
<append>:当设置为true,日志被追加到文件结尾
当设置为false,清空现存文件,默认是true
<rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名
属性class定义具体的滚动策略类,"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"是最常用的滚动策略
它根据时间来制定滚动策略,既负责滚动也负责出发滚动。
<fileNamePattern>:必要节点,包含文件名及“%d”转换符,“%d”可以包含一个java.text.SimpleDateFormat指定的时间格式,如:%d{yyyy-MM}
当直接使用 %d,默认格式是 yyyy-MM-dd
RollingFileAppender的file字节点可有可无,通过设置file
可以为活动文件和归档文件指定不同位置,当前日志总是记录到file指定的文件(活动文件)
活动文件的名字不会改变
如果没设置file,活动文件的名字会根据fileNamePattern 的值
每隔一段时间改变一次
“/”或者“\”会被当做目录分隔符
<maxHistory>:可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件
假设设置每个月滚动,且<maxHistory>是6,则只保存最近6个月的文件,删除之前的旧文件
注意,删除旧文件是,那些为了归档而创建的目录也会被删除。"ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"是查看当前活动文件的大小,
如果超过指定大小会告知RollingFileAppender 触发当前活动文件滚动。只有一个节点:
<maxFileSize>:这是活动文件的大小,默认值是10MB。
<prudent>:当为true时,不支持FixedWindowRollingPolicy
支持TimeBasedRollingPolicy,但是有两个限制,1不支持也不允许文件压缩,2不能设置file属性,必须留空。
<triggeringPolicy >: 告知 RollingFileAppender 合适激活滚动。"ch.qos.logback.core.rolling.FixedWindowRollingPolicy"
根据固定窗口算法重命名文件的滚动策略。
<minIndex>:窗口索引最小值
<maxIndex>:窗口索引最大值,当用户指定的窗口过大时,会自动将窗口设置为12。
<fileNamePattern>:必须包含“%i”例如,假设最小值和最大值分别为1和2,命名模式为 mylog%i.log,
会产生归档文件mylog1.log和mylog2.log。还可以指定文件压缩选项,例如,mylog%i.log.gz 或没有log%i.log.zip
<encoder>:对记录事件进行格式化。负责两件事,
一是把日志信息转换成字节数组
二是把字节数组写入到输出流
PatternLayoutEncoder 是唯一有用的且默认的encoder
有一个<pattern>节点,用来设置日志的输入格式
使用“%”加“转换符”方式,如果要输出“%”,则必须用“\”对“\%”进行转义
例
//每天生成一个日志文件,保存20天的日志文件
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>20</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>边栏推荐
- Kubernetes (五) ---------部署 Kubernetes Dashboard
- cdc source能读完MySqlSnapshotSplit 就退出嘛
- 对Vintage分析的一些学习理解
- After 4 years of development and 13K, if you want to change to automated testing, can your salary still rise···
- JS break and continue and return keywords
- 使用VsCode配置MySQL实现连接、查询、等功能
- H3C_ Using setting default static routing priority to realize the active and standby function of export dual lines
- Implementation of book borrowing management system based on C language
- gin 路由,参数,输出
- CAN&CANFD综合测试分析软件LKMaster与PCAN-Explorer 6分析软件的优势对比
猜你喜欢
随机推荐
WPF simple login page completion case
Spingboot integrates the quartz framework to realize dynamic scheduled tasks (support real-time addition, deletion, modification and query tasks)
Win11 system error: code execution cannot continue because ierutil.dll cannot be found. Reinstalling the program may fix this problem
win11VMware打开虚拟机就蓝屏重启以及启动不了的解决方案
Synchronous / asynchronous, blocking / non blocking and IO
Round avatar of user list and follow small blocks
Leetcode 879. profit plan
0 8 动态规划(Dynamic Programming)
js中break与continue和return关键字
Homebrew brew update doesn't respond for a long time (or stuck in updating homebrew...)
[OpenGL] use of shaders
反射reflect
vue-router路由缓存
Personal blog system (with source code)
I'd like to ask, my flick job writes data in the way of upsert Kafka, but I'm more careful in MySQL
Vmware16 create virtual machine: win11 cannot be installed
第7节-程序的编译(预处理操作)+链接
同步/异步、阻塞/非阻塞 与 IO
对Vintage分析的一些学习理解
Unity发送Post请求给GoLang服务端解析并返回









