SpringBoot集成logback初始化源码解析(部分)

一.SpringBoot配置扩展点

SpringBoot日志模块使用监听的方式进行初始化,在SpringBoot项目启动后,会通知日志监听器

在日志监听器中ApplicationStartingEvent事件用来确定到底使用哪个日志系统,logback log4j等

在日志监听器中ApplicationEnvironmentPreparedEvent事件中用来确定日志配置文件

如果没有配置logging.config属性,则使用系统约定配置,系统约定配置又分为logback约定和spring约定

logback的默认配置如下:

复制代码
@Override
protected String[] getStandardConfigLocations() {
    return new String[] { "logback-test.groovy", "logback-test.xml", "logback.groovy",
          "logback.xml" };
}

spring的默认配置如下:

复制代码
protected String[] getSpringConfigLocations() {
    String[] locations = getStandardConfigLocations();
    for (int i = 0; i < locations.length; i++) {
       String extension = StringUtils.getFilenameExtension(locations[i]);
       locations[i] = locations[i].substring(0,
             locations[i].length() - extension.length() - 1) + "-spring."
             + extension;
    }
    return locations;
}

这段代码含义就是logback默认配置的前缀"-spring".xml

二.Logback加在配置优先级

优先级为默认配置>默认配置的前缀"-spring".xml

默认配置又是数组的先后顺序

相关推荐
q***14649 分钟前
oracle 12c查看执行过的sql及当前正在执行的sql
java·sql·oracle
q***563822 分钟前
Spring Boot 中 RabbitMQ 的使用
spring boot·rabbitmq·java-rabbitmq
好好研究40 分钟前
SpringMVC框架 - 获取请求参数常用的注解
java·spring·mvc
c***93771 小时前
springboot使用logback自定义日志
java·spring boot·logback
i***66501 小时前
SpringBoot中整合RabbitMQ(测试+部署上线 最完整)
spring boot·rabbitmq·java-rabbitmq
g***78911 小时前
SpringBoot中使用TraceId进行日志追踪
spring boot·后端·状态模式
七夜zippoe1 小时前
JVM调优实战:从GC日志分析到参数配置(Xmx, Xms, XX:+)
java·jvm·gc·jit·垃圾回收器
这不小天嘛1 小时前
多模态智能对话系统-后端开发
java
2509_940880221 小时前
springboot集成onlyoffice(部署+开发)
java·spring boot·后端