logback:spring boot集成配置及独立配置

spring boot日志框架

  • spring内部日志框架JCL

  • spring-boot-starter-logging默认slf4j+logback

    
      
        ch.qos.logback
        logback-classic
        compile
      
      
        org.apache.logging.log4j
        log4j-to-slf4j
        compile
      
      
        org.slf4j
        jul-to-slf4j
        compile
      
    
    
  • slf4j相当于接口,logback作为实现,可以选择配置不同的日志实现,统一由slf4j输出

  • 替换日志实现

    • spring-boot-starter-web、spring-boot-starter中剔除logback,导入其他日志框架
    
        org.springframework.boot
        spring-boot-starter-web
        
            
                org.springframework.boot
                spring-boot-starter-logging
            
        
    
    
        org.springframework.boot
        spring-boot-starter-log4j2
        2.3.0.RELEASE
    
    
  • spring boot默认输出root级别:输出所有日志中info级别以上日志,因此debug级别必须显式配置

logback配置

  1. logback相比log4j,没有FATAL级别,该级别并入ERROR

  2. application.yml配置:logback日志格式设置

    logging:
      pattern:
        console: '%d{yyyy-MM-dd HH:mm:ss}|%cyan(${spring.application.name})|%highlight(%-5level)|%boldYellow([%t]) |%magenta(%logger{64}) |%X{sahara-log-id} |%msg%n'
        file: '%d{yyyy-MM-dd HH:mm:ss}|${spring.application.name}|%-5level|[%t] |%logger{64} |%X{sahara-log-id} |%msg%n'
    
    • %d:输出时间
    • %clr:可自定义颜色
    • %t:线程
    • %X:MDC(“Mapped Diagnostic Context”(映射诊断上下文)),用于追踪请求
    • %logger{}:输出logger,参数限定输出长度,超长将缩写
    • %后接-表示最小长度,左对齐右填充
  3. spring-boot内置配置:logback、log4j2、JUL默认配置文件,主要了解logback默认配置

    • base.xml预设日志文件输出路径,配置root输出级别是level,引入预先配置的console、file输出

      <included>
         <include resource="org/springframework/boot/logging/logback/defaults.xml" />
         <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
         <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
         <include resource="org/springframework/boot/logging/logback/file-appender.xml" />
         <root level="INFO">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="FILE" />
         root>
      included>
      
    • defaults.xml预设日志输出格式,配置部分logger输出级别

      <included>
         <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" 

你可能感兴趣的:(日志,logback)