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集合容器,循环调用输出日志到文件或控制台

相关推荐
思考的橙子3 分钟前
Springboot之会话技术
java·spring boot·后端
钰爱&29 分钟前
【Linux】POSIX 线程信号量与互斥锁▲
java·开发语言·jvm
黑匣子~2 小时前
java集成telegram机器人
java·python·机器人·telegram
竹小春逢十八3 小时前
Java常用类概述
java
weixin_437398213 小时前
RabbitMQ深入学习
java·分布式·后端·spring·spring cloud·微服务·rabbitmq
Your易元3 小时前
设计模式-迭代器模式
java·开发语言
╭⌒心岛初晴3 小时前
JAVA练习题(2) 找素数
java·开发语言·算法·java练习题·判断素数/质数
purrrew3 小时前
【Java ee初阶】网络原理
java·运维·服务器·网络·网络协议·udp·java-ee
bing_1584 小时前
Spring MVC 视图解析器 (ViewResolver) 如何配置? Spring Boot 是如何自动配置常见视图解析器的?
spring boot·spring·mvc
Timmer丿4 小时前
kafka学习笔记(四、生产者、消费者(客户端)深入研究(三)——事务详解及代码实例)
java·笔记·学习·kafka