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

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

相关推荐
一叶飘零_sweeeet6 分钟前
从 “死锁“ 到 “解耦“:重构中间服务破解 Java 循环依赖难题
java·循环依赖
Terio_my9 分钟前
Spring Boot Web环境测试配置
spring boot
whltaoin40 分钟前
Java 后端与 AI 融合:技术路径、实战案例与未来趋势
java·开发语言·人工智能·编程思想·ai生态
汤姆yu42 分钟前
2025版基于springboot的美食食品商城系统
spring boot·后端·美食
00后程序员张1 小时前
RabbitMQ核心机制
java·大数据·分布式
用户0332126663671 小时前
将 HTML 转换为 Word:Java 自动化文档生成
java
天天摸鱼的java工程师1 小时前
Java 版 “国庆头像生成器”:8 年老开发的实用小工具
java·后端
亦良Cool1 小时前
如何部署一个Java项目
java·开发语言
徐子童1 小时前
优选算法---字符串
java·算法·字符串·笔试·高精度相乘