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

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

相关推荐
java干货9 分钟前
深度解析:Spring Boot 配置加载顺序、优先级与 bootstrap 上下文
前端·spring boot·bootstrap
程序员JerrySUN31 分钟前
[特殊字符] 深入理解 Linux 内核进程管理:架构、核心函数与调度机制
java·linux·架构
2302_8097983234 分钟前
【JavaWeb】Docker项目部署
java·运维·后端·青少年编程·docker·容器
网安INF1 小时前
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
java·web安全·网络安全·flink·漏洞
一叶知秋哈1 小时前
Java应用Flink CDC监听MySQL数据变动内容输出到控制台
java·mysql·flink
jackson凌1 小时前
【Java学习笔记】SringBuffer类(重点)
java·笔记·学习
sclibingqing1 小时前
SpringBoot项目接口集中测试方法及实现
java·spring boot·后端
程序员JerrySUN1 小时前
全面理解 Linux 内核性能问题:分类、实战与调优策略
java·linux·运维·服务器·单片机
糯米导航1 小时前
Java毕业设计:办公自动化系统的设计与实现
java·开发语言·课程设计
糯米导航1 小时前
Java毕业设计:WML信息查询与后端信息发布系统开发
java·开发语言·课程设计