这篇文章将为大家详细讲解有关spring boot中怎么动态调整日志级别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联公司专业为企业提供普兰店网站建设、普兰店做网站、普兰店网站设计、普兰店网站制作等企业网站建设、网页设计与制作、普兰店企业网站模板建站服务,10多年普兰店做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
实现起来超级简单,使用spring boot自带的LoggingSystem的api来动态设置日志级别,当然的项目需要提供动态调整的接口,来达动态调整的目的。不过博主项目使用了Apollo配置中心,利用其配置动态生效的特性,soso就搞定了,代码如下
@Service public class DynamicLoggersConfig{ Logger logger= LoggerFactory.getLogger(getClass()); @ApolloConfig private 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; } @ApolloConfigChangeListener private void configChangeListter(ConfigChangeEvent changeEvent){ SetkeyNames=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); logger.info("{}:{}",key,strLevel); } } } }
怎么配置?
和在spring环境下正常配置日志级别一样配置即可,如
logging.level.org.springframework = info logging.level.com.yudianbank.sales = debug logging.level.org.hibernate = info
关于spring boot中怎么动态调整日志级别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。