我们有一个多模块的Spring Boot项目,它有 DEBUG
级别的日志记录需要更改为 INFO
级别 . 由于它使用Spring Boot 1.2.5,我按照说明here和here,但在 application.properties
中设置 logging.level.org.springframework.web=INFO
无效,我们在日志中不断收到 DEBUG
消息 .
但是,提供像上面提到的网站上的那个,并设置水平有效 . 即使没有明确设置,因为Spring引入的 base.xml
包含在我们的 logback.xml
中,默认情况下根日志记录级别设置为 INFO
.
Spring Boot使用带有Logback的SLF4J作为默认值,但我们不希望因此而依赖Logback,我们应该能够从 application.properties
配置日志记录级别 . 该项目以编程方式配置,因此 application.properties
不包含任何其他内容 . 两个配置文件都位于 src/main/resources
下的类路径中 .
我尝试了 logging.level.*=INFO
,尝试了不同的分隔符( :
, `` , =
) . 我搜索了项目文件,但没有发现现有日志配置的痕迹 .
什么可能导致 application.properties
被忽略/覆盖但 logback.xml
不是?
application.properties
logging.level.org.springframework.web=INFO
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
</configuration>
2 回答
尝试设置要与
spring.config.location
或spring.config.name
一起使用的application.properties文件的名称(有关详细信息,请参阅docs)除此之外,您可以使用Actuator的
/env
endpoints 查看Spring Boot处理哪些文件以及从中读取哪些值 . 这将告诉您是否有比您提供的配置文件更多的配置文件 .也许快速检查可能会有所帮助:检查application.properties中的某些内容,例如
server.port=4711
,然后您将立即知道是否读取了该文件 .请记住,在读取application.properties之前会写入一些日志记录输出 . 这意味着在Spring Boot得知您不想看到它们之前,可能已经编写了一些org.springframework.web消息 .
如果你把
logback.xml
Spring Boot用Logback
作为主LoggingSystem
. 除了commons-logging API之外,Spring Boot没有强制的日志记录依赖性 .