公司的ssh项目的配置中心要从disconf迁移到apollo,其他所有配置文件不管是application.xml的配置文件还是configbean都比较好实现,详情可参考
https://www.apolloconfig.com/#/zh/usage/java-sdk-user-guide
但是到了logback.xml这里,大部分你搜索到的配置方案都是apollo和springboot的整合方法,将logback.xml重命名为logback-spring.xml,把其中的一些变量保存在配置中心。
同时在application.yml或者application.properties文件内写入
# will inject 'application' namespace in bootstrap phase
apollo.bootstrap.enabled = true
# put apollo initialization before logging system initialization
apollo.bootstrap.eagerLoad.enabled=true
来使Apollo的加载顺序放到日志系统加载之前。
问题就在于这种方法并不适用于spring框架,springboot加载apollo配置,主要是安排springboot做了springProperty的机制,他会在日志系统启动的时候加载logback的配置文件,这个过程早于applicationContext。spring框架没有这种机制。
尝试过多次之后并没有办法拉取配置到本地。感觉就相当令人沮丧。迫不得已只能将logbak.xml放置在本地,在不同环境下手动切换其中的变量。
另外有一种方法是将logback.xml整个放入apollo配置中心,在客户端加载配置,用自定义重载的日至加载起启动logback系统,这种侵入比较大,不推荐。相较而言还是推荐配置在本地。
我也从一个学生转变成一名社畜,写下了这篇,也就是我的第一篇博客。
很喜欢现在的团队氛围,强哥凡哥都是我大哥。
.----. .-. .-..-. .-..-. .-..-. .-. .----. .--. .----..-. .-.
| {} }| { } || `| || `| | \ \/ / | {} } / {} \ | {} }\ \/ /
| {} }| {_} || |\ || |\ | } { | {} }/ /\ \| {} } } {
`----' `-----'`-' `-'`-' `-' `--' `----' `-' `-'`----' `--'
|