我在google kubernetes托管容器引擎中运行了一个spring boot java服务。 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启动服务中是否有类似的方法来控制运行时的日志级别?
答案 0 :(得分:0)
您是否尝试过使用logger endpoint?在spring-boot 1.5中引入
我想如果你有1个实例就可以了,但如果有多个可能这是一个糟糕的方法。
答案 1 :(得分:0)
如果你使用Spring Boot Admin,来自Codecentric(https://github.com/codecentric/spring-boot-admin)你可以在运行时通过JMX / Jolokia修改日志级别。
您还可以实施“Spring Cloud Bus”,它可以在您将更改提交到配置管理系统(git)后推出配置更改并刷新应用程序上下文。
http://cloud.spring.io/spring-cloud-static/springcloud.html#_push_notifications_and_spring_cloud_bus