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

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

相关推荐
jxkejiiii7 分钟前
电脑键盘震动反馈,开启与关闭方法及常见问题解答
java·安全·智能手机
小陳参上7 分钟前
持久化数据库实现:确保数据持久性与可靠性
java·jvm·数据库
于慨9 分钟前
java Web
java·开发语言·前端
麦麦鸡腿堡10 分钟前
JavaWeb_maven
java·开发语言·maven
杨过姑父16 分钟前
jvm笔记2
java·jvm
YDS82917 分钟前
黑马点评 —— 缓存穿透和缓存击穿及其解决方案
spring boot·redis·缓存
电子云与长程纠缠17 分钟前
Godot学习02 - 输入
java·学习·godot
LSL666_20 分钟前
IService——使用和新增
java·开发语言·mybatisplus
沐硕21 分钟前
Dietify 智能饮食推荐系统全解析 —— 当协同过滤遇上营养科学,构建你的私人饮食管家
spring boot·python·fastapi·多目标优化·饮食推荐·改进协同过滤
sjmaysee23 分钟前
@RestController注解
java