Spring Boot没有监听外部logging.level。*属性

时间:2017-05-10 10:35:24

标签: spring-boot

我目前正在处理我正在构建的应用程序的外部日志记录属性。我有一个名为myapp.properties的自定义属性文件。它包含一些自定义属性和一些特定于环境的Spring属性,如SSL和服务器端口(包括日志记录)。

自定义属性文件适用于所有属性,但logging.level。*属性除外,它们只是明显被忽略。

例如,当我在自定义myapp.properties中使用此属性时:

server.port=12345

它运作得很好:s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 12345 (http)

但是,当我为日志记录属性尝试相同的事情时:

logging.level.root=ERROR

它仍会记录其他消息:2017-05-10 12:32:54.984 INFO 9188 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)

任何人都知道什么可能解决这个问题?

2 个答案:

答案 0 :(得分:2)

Spring Boot很早就初始化了日志系统。事实上,这么早,通过PropertySourcesPlaceholderConfigurer配置的属性文件无法及时提供。

您有几个选项,包括:

  • 在标准application.propertiesapplication.yml文件
  • 中配置日志记录级别
  • Configuring spring.config.name以便除了myapp.properties
  • 之外,Boot会查找application.properties

答案 1 :(得分:0)

基本上,我问这个问题是github上的问题。所以这是解决方案。 https://github.com/spring-projects/spring-boot/issues/9243