logback的使用

118 阅读2分钟

新公司由于日志文件量比较大,所以做了一些细分,对于logback.xml的配置还是下了一些功夫的,借助这个机会,我也深入的回顾和学习一下logback。

  1. springboot项目如何使用
        引入jar包
      
            <dependency>
              <groupId>ch.qos.logback</groupId>
              <artifactId>logback-classic</artifactId>
              <version>1.3.0-alpha12</version>
            </dependency>
    
    
    
1.如图1,在创建记录器logger的同时,也会创建他的父记录器
2.如图2,再去创建图2的记录器的时候,只要创建org.example.APP2的记录器
3.level属性(可选)

name属性:记录器的名称
记录器的级别,允许的级别从低到高
additivity属性(可选):是否允许叠加打印日志, true或false

4. 根记录器是默认创建的,默认级别debug,Logger真正的类型:ch.qos.logback.classic.Logger

5.附加器:记录器会将输出日志的任务交给附加器完成,不同的附加器会将日志输出到不同的地方,比如控制台附加器、文件附加器、网络附加器等等。

常用的附加器
   控制台附加器:     ch.qos.logback.core.ConsoleAppender
   文件附加器:        ch.qos.logback.core.FileAppender
   滚动文件附加器: ch.qos.logback.core.rolling.RollingFileAppender

附加器里面设置编码器<encoder>,编码器中设置日志的模板<pattern>

6. Pattern标签

           %date %class %line %msg%n

           %-50date{dd MMM yyyy;HH:mm:ss.SSS},20 oct. 2006;14:06:49.812
           输出日志记录事件的日期
           50表示日期占用50个长度, -表示空格添加在右边

           %line,输出发出记录请求的行号

           %class,日志请求的调用者的完全限定类名

           %level,输出日志的级别

           %msg ,输出日志信息

           %logger,输出记录器的名称



image.png

image.png

1. 一个记录器是可以放置多个附加器的
<logger name = "org.example.App" level = "DEBUG" >
   <appender-ref ref="FILE" />
   <appender-ref ref="STDOUT" />
</logger>

2.滚动策略
       1. 基于时间的滚动策略  
        ch.qos.logback.core.rolling.TimeBasedRollingPolicy

       2. 基于大小和时间的滚动策略
       ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy
       
<appender name="rollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
   <!--当前正在工作的日志文件名称-->
   <file>myLog.log</file>
   <encoder>
       <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
   </encoder>
   <!--滚动策略,当到了时间以后,会把myLog.log重新命名为log_%d{yyyy-MM}.log  进行归档-->
   <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
       <!--每s归档一次,会按照年份进行特别的文件夹分类-->
       <fileNamePattern>log_%d{yyyy/MM-dd hh:MM:ss}.log</fileNamePattern>
       <!--归档文件最大保存的个数-->
       <maxHistory>3</maxHistory>
       <!--所有日志文件的大小不能超过5GB-->
       <totalSizeCap>5GB</totalSizeCap>
   </rollingPolicy>
   <!--是否会覆盖-->
   <append>false</append>
</appender>