我是靠谱客的博主 笨笨彩虹,这篇文章主要介绍logback配置文件各个属性详解,现在分享给大家,希望可以做个参考。

日志级别(大小写无关):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配置文件各个属性详解内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(85)

评论列表共有 0 条评论

立即
投稿
返回
顶部