无法从application.properties更改Spring Boot日志记录级别,但可以从logback.xml更改

时间:2015-10-16 16:02:05

标签: java spring spring-mvc spring-boot

我们有一个多模块的Spring Boot项目,它有DEBUG级别的日志记录,需要更改为INFO级别。由于它使用的是Spring Boot 1.2.5,我按照herehere的说明操作,但在logging.level.org.springframework.web=INFO中设置application.properties无效,我们不断获得DEBUG日志中的消息。

但是,在上述网站上提供类似于logback.xml的{​​{1}}并设置级别有效。即使没有明确设置,因为Spring base.xml附带的logback.xml包含在我们的INFO中,默认情况下根日志记录级别设置为application.properties

Spring Boot默认使用带有Logback的SLF4J,但我们不希望因此而依赖Logback,我们应该能够从application.properties配置日志记录级别。该项目是以编程方式配置的,因此src/main/resources不包含任何其他内容。两个配置文件都位于logging.level.*=INFO下的类路径中。

我尝试使用:,尝试了不同的分隔符(=application.properties)。我搜索了项目文件,但没有发现现有日志配置的痕迹。

导致logback.xml被忽略/覆盖但logging.level.org.springframework.web=INFO 不被覆盖的原因是什么?

application.properties

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
</configuration>

logback.xml

Select 
      t.StartingId, 
      t.EndingId, 
      t.TripCount 
FROM 
      MyTable t 
INNER JOIN 
      MyTable t2 
ON
      t2.StartingId = t.EndingId AND t2.EndingId = t.StartingId

2 个答案:

答案 0 :(得分:1)

尝试设置要与spring.config.locationspring.config.name一起使用的application.properties文件的名称(有关详细信息,请参阅docs

除此之外,您还可以使用Actuator/env端点来查看Spring Boot处理哪些文件以及从中读取哪些值。这将告诉您是否有比您提供的更多的配置文件。

也许快速检查可能有所帮助:检查application.properties中的某些内容,例如server.port=4711,然后您将立即知道是否读取了该文件。

请记住,在读取application.properties之前会写入一些日志记录输出。这意味着在Spring Boot得知你不想看到它们之前,可能已经写了一些org.springframework.web消息。

答案 1 :(得分:0)

如果您放置logback.xml Spring Boot将使用Logback作为主要LoggingSystem。除了commons-logging API之外,Spring Boot没有强制的日志记录依赖性。