日志级别(大小写无关):TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF。
1.<configuration>配置:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32<!--scan:属性为true时,配置文件发生改变,会重新进行加载,默认值为true--> <!--scanPeriod:检测配置文件是否修改的时间间隔,默认值为1分钟--> <!--dubug:打印logback内部的日志信息,默认值为false--> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <!--定义全局变量,name和value,下文通过“${}”来访问--> <property name="APP_Name" value="myAppName" /> <!--logger关联上下文,用于区分不同的应用,默认名称为“default”--> <contextName>${APP_Name}</contextName> <!--获取时间戳,并定义器格式--> <timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/> <!-- 其他配置省略--> <!-- logPack为项目中的包 --> <!-- 没有设置appender,此logger本身不打印任何信息 --> <logger name="logPack"/> <!--logPack.Demo:类的全路径 --> <!-- 日志级别设置为“INFO” --> <!-- additivity属性为false,表示此loger的打印信息不再向上级传递 --> <!-- 指定 STDOUT 的appender,控制台输出日志 --> <logger name="logPack.Demo" level="INFO" additivity="false"> <appender-ref ref="STDOUT"/> </logger> <!-- root根loger,只有一个level属性 --> <!-- 可以包含零个或多个<appender-ref>元素 --> <root level="ERROR"> <appender-ref ref="STDOUT" /> </root> </configuration>
2. <appender>配置:
appender是负责写日志的组件,有两个必要属性name和class,name指定appender名称,class指定appender的全限定名。
<encoder>:对日志进行格式化
a.控制台ConsoleAppender
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13<configuration> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- 日志格式 --> <encoder> <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="STDOUT" /> </root> </configuration>
b.写入文件:FileAppender
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<append>:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。 <prudent>:如果是 true,日志会被安全的写入文件,效率低,默认是 false。 <configuration> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>testFile.log</file> <append>true</append> <encoder> <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="FILE" /> </root> </configuration>
c.按时间滚动文件:RollingFileAppender
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47<rollingPolicy>:当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名。 TimeBasedRollingPolicy: 根据时间来制定滚动策略,既负责滚动也负责激活滚动。 FixedWindowRollingPolicy: 根据固定窗口索引重命名文件的滚动策略 <triggeringPolicy >: 告知 RollingFileAppender 合适激活滚动。 SizeBasedTriggeringPolicy: 查看当前活动文件的大小,如果超过指定大小会告知 <!-- 每天滚动生成日志文件 --> <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>30</maxHistory> </rollingPolicy> <encoder> <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="FILE" /> </root> </configuration> <!-- 时间和文件大小配合生成滚动文件-1 --> <appender name="XXX" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 指定日志文件的名称 --> <file>${LOG_HOME}/${XXX}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/${XXX}-%d{yyyy-MM-dd}-%i.log</fileNamePattern> <MaxHistory>7</MaxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>50MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender> <!-- 时间和文件大小配合生成滚动文件-2 --> <appender name="XXX" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/${XXX}/${XXX}.%d{yyyy-MM-dd_HH}.%i.log</fileNamePattern> <MaxHistory>30</MaxHistory> <maxFileSize>50MB</maxFileSize> </rollingPolicy> </appender>
3.<filter>配置:
- <level>:设置过滤级别
- <onMatch>:配置符合过滤条件的操作,过滤器的3个枚举值DENY,NEUTRAL,ACCEPT
- <onMismatch>:配置不符合过滤条件的操作
a.LevelFilter: 级别过滤器
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <!-- 过滤掉所有低于INFO级别的日志 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern> %-4relative [%thread] %-5level %logger{30} - %msg%n </pattern> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="CONSOLE" /> </root> </configuration>
b.ThresholdFilter: 临界值过滤器,过滤掉低于指定临界值的日志。
复制代码
1
2
3<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter>
logback.xml实例
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40<?xml version="1.0" encoding="UTF-8"?> <configuration scan="false" debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_HOME" value="./logs"/> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%logger{50}是类名,%msg:日志消息,%n是换行符--> <pattern>%date{ISO8601} %highlight([%thread] %-5level [%file:%line] %logger{50}-%method - %msg%n)</pattern> <!-- <pattern>[%date{ISO8601}][%level][%thread][%file:%line][%logger{100}.%method]-%msg%n</pattern>--> <charset>UTF-8</charset> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> </appender> <!-- 按照每天生成日志文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_HOME}/envMonitor.%d{yyyy-MM-dd}.log</FileNamePattern> <!--日志文件保留天数--> <MaxHistory>30</MaxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> </appender> <!-- 日志输出级别 --> <root level="info"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> </root> </configuration>
最后
以上就是笨笨彩虹最近收集整理的关于logback配置文件各个属性详解的全部内容,更多相关logback配置文件各个属性详解内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复