如何调整SpringBoot2项目中日志级别?

2026-05-21 00:392阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计328个文字,预计阅读时间需要2分钟。

如何调整SpringBoot2项目中日志级别?

SpringBoot项目使用Logback进行日志管理,通常在`application.properties`中指定日志级别。例如,以下设置定义了不同包的日志级别:propertieslogging.level.com.example.logging=DEBUGlogging.level.com.example.levevel=INFOlogging.level.com.example.org=WARN

SpringBoot使用Logback作为日志框架,项目中一般在application.properties中指定日志级别,比如以下设置分别指定了不同的包使用不同的日志级别:

如何调整SpringBoot2项目中日志级别?

logging.level.org.springframework=WARNlogging.level.com.company=INFO

但是在现场排查问题时,往往需要降低日志级别到DEBUG,一般的做法是换参数重启SpringBoot进程,但有些现场环境不能重启,需要动态调整日志级别,此时可以通过LoggingSystem进行调整,比如在Controller中添加一个设置日志级别的接口:

@Resourceprivate LoggingSystem loggingSystem;@GetMapping("/logger/{level}")@ResponseBodypublic String setLogLevel(@PathVariable String level) { //此处可以控制仅允许本地访问或加身份判断,防止非法调用 //........ //设置com.company包下的日志级别,和application.properties对应 this.loggingSystem.setLogLevel("com.company", LogLevel.valueOf(level.toUpperCase())); //如果需要精细控制,也可以遍历目前所有的logger然后逐一设置 List<LoggerConfiguration> logs = this.loggingSystem.getLoggerConfigurations(); for(LoggerConfiguration log : logs) { String loggerName = log.getName(); //名称,可用于判断 if(.............) //此处可以用于过滤需要调整哪些 this.loggingSystem.setLogLevel(loggerName, LogLevel.valueOf(level.toUpperCase())); } return "ok";}

这样用curl等调用 GET /logger/debug 就可以立即切换日志级别到DEBUG级别了,非常方便。

本文共计328个文字,预计阅读时间需要2分钟。

如何调整SpringBoot2项目中日志级别?

SpringBoot项目使用Logback进行日志管理,通常在`application.properties`中指定日志级别。例如,以下设置定义了不同包的日志级别:propertieslogging.level.com.example.logging=DEBUGlogging.level.com.example.levevel=INFOlogging.level.com.example.org=WARN

SpringBoot使用Logback作为日志框架,项目中一般在application.properties中指定日志级别,比如以下设置分别指定了不同的包使用不同的日志级别:

如何调整SpringBoot2项目中日志级别?

logging.level.org.springframework=WARNlogging.level.com.company=INFO

但是在现场排查问题时,往往需要降低日志级别到DEBUG,一般的做法是换参数重启SpringBoot进程,但有些现场环境不能重启,需要动态调整日志级别,此时可以通过LoggingSystem进行调整,比如在Controller中添加一个设置日志级别的接口:

@Resourceprivate LoggingSystem loggingSystem;@GetMapping("/logger/{level}")@ResponseBodypublic String setLogLevel(@PathVariable String level) { //此处可以控制仅允许本地访问或加身份判断,防止非法调用 //........ //设置com.company包下的日志级别,和application.properties对应 this.loggingSystem.setLogLevel("com.company", LogLevel.valueOf(level.toUpperCase())); //如果需要精细控制,也可以遍历目前所有的logger然后逐一设置 List<LoggerConfiguration> logs = this.loggingSystem.getLoggerConfigurations(); for(LoggerConfiguration log : logs) { String loggerName = log.getName(); //名称,可用于判断 if(.............) //此处可以用于过滤需要调整哪些 this.loggingSystem.setLogLevel(loggerName, LogLevel.valueOf(level.toUpperCase())); } return "ok";}

这样用curl等调用 GET /logger/debug 就可以立即切换日志级别到DEBUG级别了,非常方便。