Spring boot logback日志框架加载初始化源码

##LoggingApplicationListener监听

java 复制代码
@Override
	public void onApplicationEvent(ApplicationEvent event) {
		if (event instanceof ApplicationStartingEvent) {
			onApplicationStartingEvent((ApplicationStartingEvent) event);
		}
		else if (event instanceof ApplicationEnvironmentPreparedEvent) {
			onApplicationEnvironmentPreparedEvent((ApplicationEnvironmentPreparedEvent) event);
		}
		else if (event instanceof ApplicationPreparedEvent) {
			onApplicationPreparedEvent((ApplicationPreparedEvent) event);
		}
		else if (event instanceof ContextClosedEvent
				&& ((ContextClosedEvent) event).getApplicationContext().getParent() == null) {
			onContextClosedEvent();
		}
		else if (event instanceof ApplicationFailedEvent) {
			onApplicationFailedEvent();
		}
	}

##初始化

java 复制代码
protected void initialize(ConfigurableEnvironment environment, ClassLoader classLoader) {
		new LoggingSystemProperties(environment).apply();
		this.logFile = LogFile.get(environment);
		if (this.logFile != null) {
			this.logFile.applyToSystemProperties();
		}
		this.loggerGroups = new LoggerGroups(DEFAULT_GROUP_LOGGERS);
		initializeEarlyLoggingLevel(environment);
		initializeSystem(environment, this.loggingSystem, this.logFile);
		initializeFinalLoggingLevels(environment, this.loggingSystem);
		registerShutdownHookIfNecessary(environment, this.loggingSystem);
	}

##Spring boot 集成logback日志框架

org.springframework.boot.logging.logback.LogbackLoggingSystem

this.loggingSystem = LoggingSystem.get(event.getSpringApplication().getClassLoader());

##String logConfig = environment.getProperty(CONFIG_PROPERTY);//取出配置文件log xml配置

##解析xml文档

##实例化xml配置节点日志对象ch.qos.logback.core.rolling.RollingFileAppender

##日志对象存到这个InterpretationContext上下文

##添加到appenderList集合容器,循环调用输出日志到文件或控制台

相关推荐
葵野寺2 分钟前
【多线程】线程池
java·开发语言·java-ee·web app
十六ᵛᵃᵉ3 分钟前
day6_FlinkSQL实战
java·redis·ajax
写代码写到手抽筋12 分钟前
C++多线程的性能优化
java·c++·性能优化
高林雨露15 分钟前
Java 与 Kotlin 对比学习指南(二)
java·开发语言·kotlin
martian66537 分钟前
Maven核心配置文件深度解析:pom.xml完全指南
java·开发语言
bing_1581 小时前
JVM 每个区域分别存储什么数据?
java·jvm
zzhz9251 小时前
Jmeter(性能指标、指标插件、测试问题、面试题、讲解稿)
java·jvm·jmeter
cwtlw1 小时前
java基础知识面试题总结
java·开发语言·学习·面试
昵称为空C1 小时前
SpringBoot编码技巧-ScheduledExecutorService轮询
java·spring boot·后端
小杨xyyyyyyy1 小时前
JVM - 垃圾回收器常见问题
java·jvm·面试