好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

spring boot线上日志级别动态调整的配置步骤

前言

日志模块是每个项目中必须的,用来记录程序运行中的相关信息。一般在开发环境下使用DEBUG级别的日志输出,为了方便查看问题,而在线上一般都使用INFO级别的日志,主要记录业务操作的日志。那么问题来了,当线上环境出现问题希望输出DEBUG日志信息辅助排查的时候怎么办呢?修改配置文件,重新打包然后上传重启线上环境,之前确实是这么做的。下面会介绍使用动态调整线上日志级别来解决这个问题。

正文

spring boot版本:1.5.7

实现起来超级简单,使用spring boot自带的LoggingSystem的api来动态设置日志级别,当然的项目需要提供动态调整的接口,来达动态调整的目的。不过博主项目使用了Apollo配置中心,利用其配置动态生效的特性,soso就搞定了,代码如下

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

@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环境下正常配置日志级别一样配置即可,如

?

1

2

3

logging.level.org.springframework = info

logging.level.com.yudianbank.sales = debug

logging.level.org.hibernate = info

如上代表spring体系工具开启INFO级别日志,业务系统开启DEBUG级别日志,hibernate开启INFO级别日志

文末结语

动态日志输出看似小功能,却能解决非常大的问题。各种环境bug排除都少不了看日志输出。文件提到的Apollo是携程开源的配置中心项目,顺道推广下,感谢携程开源给了我们这么好的产品。项目地址如下

Apollo项目地址: https://github.com/ctripcorp/apollo

以上就是spring boot线上日志级别动态调整的配置步骤的详细内容,更多关于spring boot线上日志级别动态调整的资料请关注其它相关文章!

原文链接:http://www.kailing.pub/article/index/arcid/189.html

查看更多关于spring boot线上日志级别动态调整的配置步骤的详细内容...

  阅读:25次