【问题标题】:How to change logback log level dynamically in spring boot application如何在 Spring Boot 应用程序中动态更改 logback 日志级别
【发布时间】:2017-03-26 04:16:43
【问题描述】:

我有一个 Spring Boot 应用程序,它使用 logback.xml 来记录配置。我正在寻找动态更改日志级别的选项。 例如,如果我部署了一个日志级别为 ERROR 的应用程序,假设我想将其更改为 INFO,但我不想重新部署/重新启动我的 JVM。

有没有可能我们可以像配置服务器一样配置 logback.xml 来实现这一点

【问题讨论】:

    标签: spring-boot logback spring-cloud


    【解决方案1】:

    如果您使用的是 spring cloud,那么您可以在 yml 文件中包含它

    logging:
      level:
        root: INFO
    

    然后您可以更改它并使用执行器刷新刷新配置以获取新的配置更改,而无需重新启动服务。

    此外,如果您需要某种 UI 来执行此操作,您可以探索 Spring-cloud-dashboard 它非常酷,它使用执行器的功能来执行并向您展示许多内容,而不仅仅是更改日志级别。

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        是的,这很有可能。公开一个提供类名和日志级别的休息端点。使用 slf4j 您可以获得 LoggerContext 并更改级别。

            LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
            context.getLogger(className).setLevel(Level.valueOf(level));
        

        Apache Commons 日志记录和其他具有类似功能。

        【讨论】:

          猜你喜欢
          • 2020-08-17
          • 1970-01-01
          • 2019-04-09
          • 2016-02-23
          • 2018-11-17
          • 2021-09-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多