携程Apollo动态配置日志级别
生活随笔
收集整理的這篇文章主要介紹了
携程Apollo动态配置日志级别
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在application.properties中配置 logging.level.com.umgsai.core.dal=debug 可以在日志中打印出詳細(xì)的SQL語句。
但是并不希望在線上環(huán)境也打印,此時需要在線上和線下配置不同的日志級別。
@Slf4j @Service public class DynamicLoggersConfig {private static final String DAL_PACKAGE = "com.umgsai.core.dal";@Value("${logging.level.com.umgsai.core.dal:info}")private String dalLogLevel = "info";@ApolloConfigprivate Config config;private final static String LoggerTag = "logging.level.";private final LoggingSystem loggingSystem;public DynamicLoggersConfig(LoggingSystem loggingSystem) {Assert.notNull(loggingSystem, "LoggingSystem must not be null");this.loggingSystem = loggingSystem;}@ApolloConfigChangeListenerprivate void configChangeListener(ConfigChangeEvent changeEvent) {Set<String> keyNames = config.getPropertyNames();for (String key : keyNames) {if (StringUtils.containsIgnoreCase(key, LoggerTag)) {String strLevel = config.getProperty(key, "info");LogLevel level = LogLevel.valueOf(strLevel.toUpperCase());loggingSystem.setLogLevel(key.replace(LoggerTag, ""), level);}log.info("{}:{}", key, config.getProperty(key, null));}}@PostConstructprivate void setLogLevel() {LogLevel level = LogLevel.valueOf(dalLogLevel.toUpperCase());loggingSystem.setLogLevel(DAL_PACKAGE, level);log.info("{}:{}", DAL_PACKAGE, dalLogLevel);} }?
總結(jié)
以上是生活随笔為你收集整理的携程Apollo动态配置日志级别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哨兵机制服务器环境准备
- 下一篇: 项目整合一级缓存和二级缓存