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

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

相关推荐
猫耳球团9 小时前
IDEA与Cursor跨平台协作指南
java·ide·intellij-idea
亚历克斯神9 小时前
Java 职业发展:2026 指南
java·spring·微服务
xuhaoyu_cpp_java9 小时前
Maven学习(二)
java·经验分享·笔记·学习·maven
西门吹-禅9 小时前
java 微服务学习笔记
java·学习·微服务
小碗羊肉9 小时前
【从零开始学Java | 第三十五篇】IO流-字节流
java·开发语言
xiaomo22499 小时前
javaee-网络原理4
java·网络
Soari10 小时前
Ziggo-CaaS-Switch软件配置: undefined reference to pthread_create
java·开发语言·fpga开发·tsn·zynq·交换机配置
云烟成雨TD10 小时前
Spring AI Alibaba 1.x 系列【13】 检查点 (Checkpoint) 机制及各类持久化实现
java·人工智能·spring
殷紫川10 小时前
深入拆解 Fork/Join 框架:核心原理、分治模型与参数调优实战
java
yaaakaaang10 小时前
十六、解释器模式
java·解释器模式