在 application.yml 中设置根日志记录级别

我在 Spring Boot (1.3 M1)中使用了 application.properties,并开始将其转换为 yaml 文件,因为它变得越来越复杂。

但是我不知道怎么把它翻译成 yaml:

logging.level.*=WARN
logging.level.com.filenet.wcm=ERROR
logging.level.de.mycompany=DEBUG

最后两行很容易翻译成这样:

logging:
level:
com.filenet.wcm: ERROR
de.mycompany: DEBUG

但是如何为根日志记录级别添加值呢? 这两种方法都失败了:

失败的方法1:

logging:
level: WARN
com.filenet.wcm: ERROR
de.mycompany: DEBUG

失败的方法2:

logging:
level:
star: WARN
com.filenet.wcm: ERROR
de.mycompany: DEBUG

我读了 医生,搜索了 stackoverflow 和 google,但没有找到一个有效语法的例子。

104924 次浏览

您可以使用 ROOT来配置根日志记录级别:

logging:
level:
ROOT: DEBUG

如果需要逐级包,可以使用以下语法:

logging:
level:
org.springframework.web: DEBUG
guru.springframework.controllers: DEBUG
org.hibernate: DEBUG
org: INFO

您甚至可以使用 类名来配置日志级别:

logging:
level:
com.yourorganization.Yourclass: DEBUG

这是个老问题了,但我有个问题。

在设定的时候

org.springframework.web: debug

或者

org.hibernate: debug

可以正常工作,如果希望对项目文件执行相同的操作(设置每个包的级别) ,则必须使用通配符。因此,对于这个问题中的例子,应该是:

logging:
level:
root: WARN
com.filenet.wcm.*: ERROR
de.mycompany.*: DEBUG

或者,您可以不使用通配符设置每个类的日志记录级别,如 torina 的答案所示。

您可以通过创建 CommonsRequestLoggingFilter并添加

logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG

application.properties文件,详细说明在这个链接 -https://www.baeldung.com/spring-http-logging

@Configuration
public class RequestLoggingFilterConfig {


@Bean
public CommonsRequestLoggingFilter logFilter() {
CommonsRequestLoggingFilter filter
= new CommonsRequestLoggingFilter();
filter.setIncludeQueryString(true);
filter.setIncludePayload(true);
filter.setMaxPayloadLength(10000);
filter.setIncludeHeaders(false);
filter.setAfterMessagePrefix("REQUEST DATA : ");
return filter;
}
}