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

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

相关推荐
代码or搬砖3 分钟前
MySQL窗口函数 OVER()讲解
java·mysql
静心观复38 分钟前
Java 中,`1 << 1`
java·开发语言
爱睡觉的王宇昊1 小时前
单体架构详细解析:从概念到实践--购物网站搭建
java·spring boot·架构·团队开发·个人开发·敏捷流程
不思念一个荒废的名字1 小时前
【黑马JavaWeb+AI知识梳理】Web后端开发04-登录认证
java·后端
java1234_小锋1 小时前
Redis到底支不支持事务啊?
java·数据库·redis
爱笑的眼睛111 小时前
超越`cross_val_score`:深入剖析Scikit-learn交叉验证API的设计哲学与高阶实践
java·人工智能·python·ai
L0CK2 小时前
三种依赖注入详解
java
記億揺晃着的那天2 小时前
Amazon SP-API,授权封装、SDK 分层与 AAD 加密一致性设计
spring boot·架构设计·amazon sp-api·sdk 设计
shoubepatien2 小时前
JAVA -- 07
java·后端·intellij-idea
Gu_yyqx2 小时前
Maven进阶
java·maven