返回

日志组件 Logback 配置介绍

https://s2.ax1x.com/2019/06/18/VbzijI.jpg

直接以代码的形式,进行注释说明,如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod=""  debug="false">
  
  <substitutionProperty name="log.base" value="/home/project/logs"/>
  <property name="maxHistory" value="30" />

  <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
    </encoder>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level value="DEBUG"/>
    </filter>
    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
      <charset>UTF-8</charset>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <FileNamePattern>${log.base}/core/log.%d{yyyy-MM-dd}_core_%i.log</FileNamePattern>
      <maxHistory>${maxHistory}</maxHistory>
      <timeBaseFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>10MB</maxFileSize>
      </timeBaseFileNamingAndTriggeringPolicy>
    </rollingPolicy>
  </appender>
  
  <logger name="com.logback.base.dao" level="debug" additivity="false">
    <appender-ref ref="stdout"/>
  </logger>
  
  <root level="debug">
    <appender-ref ref="stdout"/>
  </root>
</configuration>

针对其中的属性一一介绍:

属性/标签 说明 默认值
configuration 根节点配置标签  
scan 开启动态加载配置 true
scanPeriod 加载时间间隔 60 seconds
debug loback 内部信息 false
substitutionProperty 替换的变量  
name 变量名称  
value 变量值  
property 变量定义  
name 变量名称 ${} 来使用
value 变量值  
file 引入配置文件 (可选)  
appender 日志输出策略组件  
name 自定义名称  
class 日志输出策略组件实现类 可选见下图
encoder 编码格式 ch.qos.logback.classic.encoder.PatternLayoutEncoder
pattern 输出格式 见下文参考格式
charset 字符编码设置  
filter 过滤器,  
class 过滤器实现类 eg:LevelFilter / ThresholdFilter / EvaluatorFilter
level 过滤级别  
value 可选:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF  
rollingPolicy 滚动生成方法配置  
class 指定滚动策略执行类  
FileNamePattern 文件格式配置含文件名, 根据配置的时间单位来进行配置滚动策略  
maxHistory 历史文件保留时间 如果是按月滚动,6 则为 6 个月历史记录,之前旧的会删除
timeBaseFileNamingAndTriggeringPolicy 配置触发策略,类似阈值触发  
class 配置触发策略实现类 eg:SizeAndTimeBasedFNATP 大小
maxFileSize 允许日志文件单位大小 eg:10MB
logger 指定位置日志级别以及输出策略 / root 和 logger 相同但是 root 作用在全局位置  
name 某一个包或者具体的某一个类 eg:com.baidu.spring.service
level 日志级别,忽略大小写 可选:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
additivity 是否向上级 loger 传递打印信息 true
appender-ref 引用日志输出策略 可配置 0 或多个
ref 指定引用名称,等于 appender 中的 name 值  

另外后台可以使用 Lombok 注解方式,实现日志写入,

@Slf4j
public class xxx {
  
  private void method() {
    log.error("this is error log...");
  }
}

对比代码中写的System.out.println();,logback 使用会更丰富,代码更规范,功能更强大,可能你了解它能将日志保存到指定文件,另外它还可以将日志信息配置发送到指定邮箱,配置日志信息存入数据库等。 以上是一些常规的配置介绍。

Appender 日志输出策略种类一览: https://s2.ax1x.com/2019/06/19/VOwMqS.jpg

(全文完)