logback appender详解
logback中appender是负责写日志的组件,主要用于指定日志输出的目的地,目的地可以是控制台、文件、远程套接字服务器、MySQL和其他数据库、JMS和远程UNIX Syslog守护进程等。
类型
ConsoleAppender: 把日志打印到控制台
FileAppender: 把日志输出到文件
RollingFileAppender: 滚动记录地把日志输出到文件, 也就是可以支持日志文件按文件大小拆分,或者按日期拆分
例子
<appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 文件路径 --> <file>${log.filePath}/info.log</file> <!-- 滚动策略 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 设置文件名称 --> <fileNamePattern> ${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz </fileNamePattern> <!-- 设置最大保存周期 --> <MaxHistory>${log.maxHistory}</MaxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <!-- 过滤器,过滤掉不是指定日志水平的日志 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 设置日志级别 --> <level>INFO</level> <!-- 如果跟该日志水平相匹配,则接受 --> <onMatch>ACCEPT</onMatch> <!-- 如果跟该日志水平不匹配,则过滤掉 --> <onMismatch>DENY</onMismatch> </filter> </appender>
子节点
1. filter过滤器
LevelFilter: 级别过滤器,根据日志级别进行过滤。如果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志。
ThresholdFilter: 临界值过滤器,过滤掉低于指定临界值的日志。当日志级别等于或高于临界值时,过滤器返回NEUTRAL;当日志级别低于临界值时,日志会被拒绝。
EvaluatorFilter: 求值过滤器,评估、鉴别日志是否符合指定条件。
2. rollingPolicy
用来设置日志的滚动策略,当达到条件后会自动将条件前的日志生成一个备份日志文件,条件后的日志输出到最新的日志文件中。常用的是按照时间来滚动(使用的类TimeBaseRollingPolicy),还有一种就是基于索引来实现(使用的类FixedWindowRollingPolicy)。
fileNamePattern属性设置滚动生成文件的格式,这里设置的精确到天,也就是按照天滚动,如果时间设置精确到秒,就按秒来滚动
maxHistory属性设定最大的文件数,比如按天滚动,这里设置了30天,在第31天日志生成的时候,第一天的日志就会被删掉
3. triggeringPolicy
日志触发器策略,常用的是日志的大小的控制,当日志达到对应的大小的时候,就会触发。生成新的日志文件。日志大小的控制配合rollingPlicy使用的时候,不同的rollingPolicy会有所不同。
4. encoder
负责把事件转换成字节数组并把字节数组写到合适的输出流。encoder可以指定属性值class,这里对应的类只有一个PatternLayoutEncoder,也是默认值,可以不去指定。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。