日志系统初始化的地方 LoggingApplicationListener.onApplicationEnvironmentPreparedEvent()
知道了日志初始化的时候是在这里;那也就知道了加载时机;那么是在哪里开始加载的呢? 我们来分析一下
首先找到 spring.factories 配置文件里面的配置;
找到被加载的地方; 具体为事件ApplicationEnvironmentPreparedEvent
通知到对应的监听者的;可以看到; ConfigFileApplicationListener
> LoggingApplicationListener
; 前面比后面先加载
看看SpringBoo整体的加载时机 【SpringBoot】SpringBoot启动流程图和扩展点说明
从上面的图中可以了解到
在 ConfigFileApplicationListener
执行的时候 会去 spring.factories
中加载所有 EnvironmentPostProcessor
并执行postProcessEnvironment方法
; 这个时候 LoggingApplicationListener
还没有被执行;说明日志系统还没有被初始化; 自然而然的 在这之前的所有日志操作都是无效的;
解决方案
使用 DeferredLog 缓存日志;并在合适的时机回放日志
public class NacosEnvPostProcessor implements EnvironmentPostProcessor, ApplicationListener, Ordered {
/**
-
这个时候Log系统还没有初始化 使用DeferredLog来记录 并在onApplicationEvent进行回放
-
*/
private static final DeferredLog LOGGER = new DeferredLog();
@Override
public int getOrder() {
return 0;
}
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
LOGGER.info(“打印日志”);
}
@Override
public void onApplicationEvent(ApplicationEvent event) {
LOGGER.replayTo(NacosEnvPostProcessor.class);
}
}
不要忘记了在spring.factorie
配置
org.springframework.boot.env.EnvironmentPostProcessor=com.xxx.NacosEnvPostProcessor
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
最后总结
ActiveMQ+Kafka+RabbitMQ学习笔记PDF
关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中…(img-9zLVcvYp-1712880979801)]