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

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

相关推荐
milanyangbo3 分钟前
从同步耦合到异步解耦:消息中间件如何重塑系统间的通信范式?
java·数据库·后端·缓存·中间件·架构
秃了也弱了。4 分钟前
elasticSearch之java客户端详细使用:文档搜索API
java·elasticsearch
java1234_小锋25 分钟前
MyBatis如何处理懒加载和预加载?
java·开发语言·mybatis
hdsoft_huge43 分钟前
小程序弱网 / 无网场景下 CacheManager 离线表单与拍照上传解决方案
java·小程序·uni-app
麦嘟学编程1 小时前
开发环境搭建之JDK11+maven3.9.8+tomcat9安装
java
刘一说1 小时前
Spring Boot 中的定时任务:从基础调度到高可用实践
spring boot·后端·wpf
小坏讲微服务1 小时前
使用 Spring Cloud Gateway 实现集群
java·spring boot·分布式·后端·spring cloud·中间件·gateway
wa的一声哭了1 小时前
hf中transformers库中generate的greedy_search
android·java·javascript·pytorch·深度学习·语言模型·transformer
.格子衫.1 小时前
Maven的下载与安装
java·maven
Override笑看人生1 小时前
gitlab中maven私有库使用备忘
java·gitlab·maven