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

本文介绍了Spring Boot日志框架的基础知识,重点讲解了如何集成和配置Logback。Logback作为SLF4J的实现,提供了丰富的日志输出选项。Spring Boot默认配置输出root级别的INFO及以上日志,可以通过application.yml定制日志格式。Logback相比log4j缺少FATAL级别,并提供了%d(时间)、%clr(颜色)、%t(线程)、%X(MDC)等占位符。自定义配置文件可通过`logback-spring.xml`或`logback.xml`,并且可以利用`logging.config`指定配置文件。配置还包括控制台输出、文件输出、滚动策略和输出源的设定。
摘要由CSDN通过智能技术生成

spring boot日志框架

  • spring内部日志框架JCL

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

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

  • 替换日志实现

    • spring-boot-starter-web、spring-boot-starter中剔除logback,导入其他日志框架
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
        <version>2.3.0.RELEASE</version>
    </dependency>
    
  • 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" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值