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

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

相关推荐
kaico20181 分钟前
JDK11新特性
java
钊兵1 分钟前
java实现GeoJSON地理信息对经纬度点的匹配
java·开发语言
jiayong236 分钟前
Tomcat性能优化面试题
java·性能优化·tomcat
秋刀鱼程序编程10 分钟前
Java基础入门(五)----面向对象(上)
java·开发语言
sunnyday042616 分钟前
基于Netty构建WebSocket服务器实战指南
服务器·spring boot·websocket·网络协议
纪莫27 分钟前
技术面:MySQL篇(InnoDB的锁机制)
java·数据库·java面试⑧股
Remember_99333 分钟前
【LeetCode精选算法】滑动窗口专题二
java·开发语言·数据结构·算法·leetcode
Filotimo_43 分钟前
在java开发中,cron表达式概念
java·开发语言·数据库
码农水水1 小时前
京东Java面试被问:HTTP/2的多路复用和头部压缩实现
java·开发语言·分布式·http·面试·php·wpf
你怎么知道我是队长2 小时前
C语言---未定义行为
java·c语言·开发语言