当前位置:  开发笔记 > 编程语言 > 正文

通过环境变量在Spring Boot中设置日志级别

如何解决《通过环境变量在SpringBoot中设置日志级别》经验,为你挑选了3个好方法。

是否可以在Spring Boot应用程序中单独通过环境变量设置日志记录级别?

我不想使用,application.properties因为我在Cloud Foundry上运行并希望在没有部署的情况下获取更改(但在应用程序重新启动后,或者重新开始更精确).

我已经尝试设置env vars,LOGGING_LEVEL_ORG_SPRINGFRAMEWORK=TRACE但这没有效果.把logging.level.org.springframework: TRACEapplication.properties做的工作,虽然.



1> Timekiller..:

这只是一个想法,但你尝试过设置

_JAVA_OPTIONS=-Dlogging.level.org.springframework=TRACE

从理论上讲,这种方式-Dlogging.level.org.springframework=TRACE将作为默认的JVM参数传递,并且应该影响环境中的每个JVM实例.


可以在实践中确认:我检查了[sample-logback](https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-logback)项目(使用版本1.3.0.RELEASE)并运行`mvn spring-boot:run -Dlogging.level.org.springframework = TRACE`,它产生了大量的日志输出.使用全部大写`-DLOGGING_LEVEL_ORG_SPRINGFRAMEWORK = TRACE`或其变体没有做任何事情.
如果`-D ...`参数起作用,那么设置`_JAVA_OPTIONS`环境变量实际上应该起作用!`mvn`命令会像任何`java`一样拾取它们。请注意,开头必须有下划线,这是必要的。有关更多信息,请参见http://stackoverflow.com/questions/17781405/。

2> pepuch..:

我还试图通过环境变量设置日志记录级别,但正如已经提到的那样,使用大写名称的环境变量是不可能的,例如.LOGGING_LEVEL_ORG_SPRINGFRAMEWORK=DEBUG.我也不想通过application.properties或做_JAVA_OPTIONS.

在深入研究课程后,org.springframework.boot.logging.LoggingApplicationListener我检查了春季启动试图将日志级别设置DEBUGORG_SPRINGFRAMEWORK包,这不是真正的包名.因此,结论是您可以使用环境变量来设置日志记录级别,但它必须采用以下形式: LOGGING_LEVEL_org.springframework=DEBUG logging.level.org.springframework=DEBUG

在春季靴子1.5.3上测试



3> 小智..:

是的,您可以使用环境变量控制日志记录级别.以下是我在Cloud Foundry平台上部署的Spring Boot应用程序的实现方法.

在您的日志配置文件中,为日志记录级别提供占位符以从环境变量中读取值.默认为INFO.

    
      
    

然后,在CF部署清单文件中提供环境变量.

    applications:
    - name: my-app-name
      memory: 2048
      env:
        APP_LOGGING_LEVEL: DEBUG

我希望这将有所帮助.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有