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

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

相关推荐
ZHang......8 小时前
LeetCode 1114. 按序打印
java·开发语言·算法
程序员欣宸8 小时前
LangChain4j实战之四:集成到spring-boot
java·人工智能·spring boot
慧都小项8 小时前
Parasoft Jtest 如何用 JSON 文件驱动Java 测试自动化
java·自动化·json
计算机毕设VX:Fegn08959 小时前
计算机毕业设计|基于springboot + vue酒店管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
Hui Baby9 小时前
全局事务入口感知子事务方法-TCC
java·开发语言·数据库
爱笑的眼睛119 小时前
FastAPI 请求验证:超越 Pydantic 基础,构建企业级验证体系
java·人工智能·python·ai
czlczl200209259 小时前
Spring Boot 参数校验进阶:抛弃复杂的 Group 分组,用 @AssertTrue 实现“动态逻辑校验”
java·spring boot·后端
得物技术9 小时前
Java 设计模式:原理、框架应用与实战全解析|得物技术
java
阿拉斯攀登9 小时前
ThreadLocal 全解析(Spring Boot 实战篇)
java·spring boot·threadlocal
BBB努力学习程序设计9 小时前
Java模块化系统深度解析:从JAR地狱到JPMS模块化
java