【问题标题】:SpringBoot Admin and loggingSpring Boot 管理和日志记录
【发布时间】:2016-11-21 14:26:01
【问题描述】:

我创建了一个 SpringBoot 管理服务器,客户端注册到它。我希望能够在运行时在 SpringBoot 管理服务器的“日志记录”选项卡中更改日志记录级别。在其中一个客户端中,我的问题是为“ke.co.betatech”包中的所有记录器创建一个父记录器,我将在运行时更改 Logger.getLogger("ke.co.betatech") 的日志记录级别,并且后代的日志记录级别更改。我不想使用根记录器来更改日志记录级别,因为它会更改所有已注册记录器的日志记录级别。

package ke.co.betatech.controllers;

@RestController
@RequestMapping("/api/v1")
public class Controller2 implements IController {

  Logger LOG;

  public Controller2() {
     LOG = Logger.getLogger(this.getClass());
  }

  @GetMapping("/greeting")
  public String hello() {
    LOG.info("Hello");
    return "hello"
  }
}

在主课中这是我尝试的

@SpringBootApplication
public class LoggingLevelRuntimeApplication {

   public static void main(String[] args) {
      // I created the parent logger here
      Logger log = Logger.getLogger("ke.co.betatech");
      SpringApplication.run(LoggingLevelRuntimeApplication.class, args);
   }
}

问题是,记录器Logger.getLogger("ke.co.betatech") 没有出现在 Spring Boot Admin Server 的记录器列表中。

【问题讨论】:

    标签: java spring logging spring-boot spring-boot-admin


    【解决方案1】:

    如果您单击日志记录页面上搜索输入旁边的符号,则可以显示包记录器。

    【讨论】:

    • 那行得通。虽然我注意到了什么;以您上面的图像为例,如果 com.netflix 设置为较低的日志记录级别,com 不再“控制”com.netflix。澄清一下,如果com 位于INFO,那么com.netflix 也将位于INFO。如果我们将com.netflix 设置为DEBUGcom 不再将com.netflix 限制为其日志级别。
    • 是的,这就是 logback 中的工作方式。用户界面中唯一缺少的是将配置级别切换回null,以便父记录器可以再次影响有效级别。
    【解决方案2】:

    在您的application.properties 文件中添加logging.level.ke.co.betatech=DEBUG,您将能够使用记录器 Logger log = Logger.getLogger("ke.co.betatech");SpringApplication.run() 完成后的任何类中一次。

    【讨论】:

    • 我已经按照建议完成了,Logger.getLogger("ke.co.betatech") 的所有后代在启动时都设置为DEBUG 级别。但我的问题是: 1. 能够在运行时使用 SpringBoot Admin Server 做到这一点。 2、Logger.getLogger("ke.co.betatech")在SpringBoot Admin Server的loggers列表中不可用
    猜你喜欢
    • 1970-01-01
    • 2017-11-01
    • 2017-12-26
    • 2018-01-05
    • 2015-08-14
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    相关资源
    最近更新 更多