我们有一个多模块 Spring Boot 项目,它具有 DEBUG
级别的日志记录,需要更改为 INFO
级别。因为它使用 Spring Boot 1.2.5,所以我遵循了说明 here和 here ,但是在 application.properties
中设置 logging.level.org.springframework.web=INFO
没有效果,我们不断收到 DEBUG
消息日志。
但是,提供一个类似于上述站点上的 logback.xml
并在那里设置级别。即使没有明确设置它,因为 Spring Boot 附带的 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>
最佳答案
尝试将 application.properties 文件的名称设置为与 spring.config.location
或 spring.config.name
一起使用(详见 docs )
除此之外,您还可以使用 Actuator 的 /env
端点查看 Spring Boot 处理了哪些文件以及从中读取了哪些值。这将告诉您是否有比您提供的配置文件更多的配置文件。
也许快速检查可能会有所帮助:检查 application.properties 中的某些内容,例如 server.port=4711
,然后您将立即知道文件是否被读取。
请记住,一些日志输出是在读取 application.properties 之前写入的。这意味着一些 org.springframework.web 消息可能在 Spring Boot 得知您不想看到它们之前就已经写入。
关于java - 无法从 application.properties 更改 Spring Boot 日志记录级别,但可以从 logback.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33174832/