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资料站2 分钟前
springBootAdmin(sba)
java
AscendKing12 分钟前
接口设计模式的简介 优势和劣势
java
Vincent_Vang18 分钟前
多态 、抽象类、抽象类和具体类的区别、抽象方法和具体方法的区别 以及 重载和重写的相同和不同之处
java·开发语言·前端·ide
qualifying19 分钟前
JavaEE——多线程(3)
java·开发语言·java-ee
花卷HJ32 分钟前
Android 下载管理器封装实战:支持队列下载、取消、进度回调与自动保存相册
android·java
wanghowie34 分钟前
01.01 Spring核心|IoC容器深度解析
java·后端·spring
人道领域37 分钟前
【零基础学java】(Map集合)
java·开发语言
@淡 定38 分钟前
Seata AT模式详细实例:电商下单场景
java
杀死那个蝈坦38 分钟前
JUC并发编程day1
java·开发语言
飞Link41 分钟前
【Java】Linux(CentOS7)下安装JDK8(Java)教程
java·linux·运维·服务器