结合apollo动态刷新日志级别
源码
/**
- 结合apollo动态刷新日志级别
- @author: zhumh17
@date: 11点50分
*/
@Configuration
public class LogListenerConfig {private static final Logger logger = LoggerFactory.getLogger> (LoggerConfiguration.class);
/**
监听关键字,当配置中心的依次开头的配置发生变化时,日志级别刷新
*/
private static final String LOGGER_TAG = “logging.level”;private LoggingSystem loggingSystem;
public LogListenerConfig(LoggingSystem loggingSystem) {
Assert.notNull(loggingSystem, “LoggingSystem must not be null”);
this.loggingSystem = loggingSystem;
}@ApolloConfigChangeListener(value = "application.yml") public void configChangeLister(ConfigChangeEvent changeEvent) { refreshLoggingLevels(changeEvent); } private void refreshLoggingLevels(ConfigChangeEvent changeEvent) { ConfigChange configChange = changeEvent.getChange(LOGGER_TAG); String strLevel = configChange.getNewValue(); LogLevel level = LogLevel.valueOf(strLevel.toUpperCase()); loggingSystem.setLogLevel("com.vx", level); logger.info("日志级别变化{}:{}",LOGGER_TAG,strLevel); }
}
这样只需要在apollo 配置 logging.level 随时可以做配置变更发布都能监听改变日志级别
末尾分享一个特别好用的日志框架,与logback等无缝对接 框架名称:TLog
TLog提供了一种最简单的方式来解决日志追踪问题,它不收集日志,也不需要另外的存储空间,它只是自动的对你的日志进行打标签,自动生成TraceId贯穿你微服务的一整条链路。并且提供上下游节点信息。适合中小型企业以及想快速解决日志追踪问题的公司项目使用。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小仓鼠!
评论