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

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

相关推荐
要开心吖ZSH18 小时前
软件设计师备考-(十六)数据结构及算法应用(重要)
java·数据结构·算法·软考·软件设计师
向上的车轮18 小时前
基于Java Spring Boot的云原生TodoList Demo 项目,验证云原生核心特性
java·spring boot·云原生
程序员清风18 小时前
快手一面:为什么要求用Static来修饰ThreadLocal变量?
java·后端·面试
逍遥德18 小时前
Java8 Comparator接口 和 List Steam 排序使用案例
java·spring boot·list·排序算法
前行的小黑炭18 小时前
Android :如何快速让布局适配手机和平板?
android·java·kotlin
_BugMan19 小时前
【IDEA】干活?一个IDEA即可,集成开发平台打造攻略
java·ide·intellij-idea
YA33320 小时前
java设计模式二、工厂
java·开发语言·设计模式
金色天际线-20 小时前
Nginx 优化与防盗链配置指南
java·后端·spring
我爱挣钱我也要早睡!21 小时前
Java 复习笔记
java·开发语言·笔记
AD钙奶-lalala1 天前
Mac OS上搭建 http server
java