logback总结

spring-boot集成logback非常简单,只写一个logback.xml即可。

1、根节点configuration

<configuration debug="false" scan="true" scanPeriod="10 seconds">

有3个属性
- scan,为true,表示如果配置文件发生更改,重新加载配置文件。默认为true。
- scanPeriod,在scan为true时生效,表示监测配置文件修改的时间间隔。默认为1min。
- debug,为true打印logback内部日志信息,实时查看logback状态。默认为true。

1-1、子节点和

    <contextName>MyAppContext</contextName>
    <!-- 日志生成相对路径,后面可以改为绝对路径 -->
    <property name="LOG_HOME" value="logs"/>

contextName表示logger上下文名称。
property用来设置属性,其中name,表示变量的名称,value,表示变量定义的值。该属性可以在后面通过${}来进行引用。

2、设置logger,root。
2-1、logger设置某个包或者某个类的打印级别以及指定对应的。

    <logger name="org.springframework" level="warn" additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>
  • name:用来指定受此logger影响的某个包名或某个类名。
  • level:用来描述该logger打印级别,高于该级别的日志方进行打印。
  • additivity:表示是否向上级loggger传递打印信息。默认为true。

2-2、root是顶级的logger,只需要指定级别即可。root可包含一个或多个appender-ref

    <root level="info">
        <appender-ref ref="STDOUT" />
    </root>

3、设置appender。

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8" class="xxxx">
            <Pattern>[%p] [%thread : %T] %d %C:%L ===>> %m%n</Pattern>
        </encoder>
    </appender>

appender是的子组件,是负责写日志的组件。有name和class两个必要属性。

  • name指定appender的名称。
  • class指定appender的全限定名。

常用appender如下:

3-1、ConsoleAppender
将日志输出到控制台,有如下子节点。

扫描二维码关注公众号,回复: 59723 查看本文章
  • :对日志进行格式化。
  • :字符串 System.out 或者 System.err ,默认 System.out ;

示例:

 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">  
    <encoder>  
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>  
    </encoder>  
  </appender>  

3-2、FileAppender
将日志添加到文本,有如下子节点:

  • file:被写入的文件名。
  • append:日志是否添加到尾部,默认为true。
  • encoder:打印格式。
  • prudent:安全写入该文件,尤其多个appender写入该文件时。效率低。默认为false。

示例:

<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>  

3-3、RollingFileAppender
滚动记录日志,有如下子节点。

  • file/append/encoder同上
  • rollingPolicy:当滚动发生时,行为由本属性决定,有下面几种策略。

策略:

TimeBasedRollingPolicy。最常用的滚动策略,根据时间来触发滚动。常见属性为
- fileNamePattern:文件命名规则。
- maxHistory:最大归档文件数量。

示例

<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> 

另外还有其他按照文件大小做滚动的策略,这里不再展开。

4、encoder
一是负责把日志信息转换为字符数组。二是把字符数组写入到输出流。
目前PatternLayoutEncoder 是唯一有用的且默认的encoder ,有一个节点,用来设置日志的输入格式。使用“%”加“转换符”方式,如果要输出“%”,则必须用“\”对“\%”进行转义。

常见规则见文档:
http://aub.iteye.com/blog/1103685
https://blog.csdn.net/xyr05288/article/details/73655597

猜你喜欢

转载自blog.csdn.net/peytonzhao/article/details/80069690