是否可以在Spring Boot应用程序中单独通过环境变量设置日志记录级别?
我不想使用,application.properties
因为我在Cloud Foundry上运行并希望在没有部署的情况下获取更改(但在应用程序重新启动后,或者重新开始更精确).
我已经尝试设置env vars,LOGGING_LEVEL_ORG_SPRINGFRAMEWORK=TRACE
但这没有效果.把logging.level.org.springframework: TRACE
在application.properties
做的工作,虽然.
这只是一个想法,但你尝试过设置
_JAVA_OPTIONS=-Dlogging.level.org.springframework=TRACE
?
从理论上讲,这种方式-Dlogging.level.org.springframework=TRACE
将作为默认的JVM参数传递,并且应该影响环境中的每个JVM实例.
我还试图通过环境变量设置日志记录级别,但正如已经提到的那样,使用大写名称的环境变量是不可能的,例如.LOGGING_LEVEL_ORG_SPRINGFRAMEWORK=DEBUG
.我也不想通过application.properties
或做_JAVA_OPTIONS
.
在深入研究课程后,org.springframework.boot.logging.LoggingApplicationListener
我检查了春季启动试图将日志级别设置DEBUG
为ORG_SPRINGFRAMEWORK
包,这不是真正的包名.因此,结论是您可以使用环境变量来设置日志记录级别,但它必须采用以下形式:
LOGGING_LEVEL_org.springframework=DEBUG
或
logging.level.org.springframework=DEBUG
在春季靴子1.5.3上测试
是的,您可以使用环境变量控制日志记录级别.以下是我在Cloud Foundry平台上部署的Spring Boot应用程序的实现方法.
在您的日志配置文件中,为日志记录级别提供占位符以从环境变量中读取值.默认为INFO.
然后,在CF部署清单文件中提供环境变量.
applications: - name: my-app-name memory: 2048 env: APP_LOGGING_LEVEL: DEBUG
我希望这将有所帮助.