如何在运行时更改kubernetes托管服务中Java slf4j记录器的日志级别?

如何在运行时更改kubernetes托管服务中Java slf4j记录器的日志级别?,java,spring-boot,google-cloud-platform,kubernetes,slf4j,Java,Spring Boot,Google Cloud Platform,Kubernetes,Slf4j,我在GoogleKubernetes管理的容器引擎中运行SpringBootJava服务。Java服务通过slf4j api记录日志(日志被转发到google stackdriver,但这不在本问题的范围内) 我可以通过更改kubernetes部署文件来更改日志记录级别: spec: template: spec: containers: env: - name: JAVA_OPTS value: -Xmx1g -Dlo

我在GoogleKubernetes管理的容器引擎中运行SpringBootJava服务。Java服务通过slf4j api记录日志(日志被转发到google stackdriver,但这不在本问题的范围内)

我可以通过更改kubernetes部署文件来更改日志记录级别:

spec:
  template:
    spec:
      containers:
        env:
        - name: JAVA_OPTS
          value: -Xmx1g -Dlogging.level.com.example=DEBUG
这是可行的,但它需要我重新部署服务(通过应用更新的
deloyment yaml
文件重新启动容器),以更改日志级别。如果与运行常规war文件的“常规”tomcat服务器相比,它可以将文件监视放在
logback.xml
-文件中,并且该文件中的更改在日志记录时生效,而无需重新启动tomcat。在kubernetes托管的spring引导服务中,是否有类似的方法来控制运行时的日志级别?

您是否尝试过使用?在spring boot 1.5中引入


我想,如果您有一个实例,这是可以的,但如果有多个实例,这可能是一种不好的方法。

如果您使用Spring Boot Admin,从Codecentric()可以通过JMX/Jolokia在运行时修改日志级别

您还可以实现一个“SpringCloudBus”,它可以在您将更改提交到配置管理系统(git)后推出配置更改并刷新应用程序上下文


请检查这是否有助于您