为什么CommonsRequestLogging忽略日志记录级别配置?

时间:2019-07-12 14:03:39

标签: spring spring-boot

我想使用CommonsRequestLoggingFilter记录我的应用程序请求,我有一个@Configuration类

@Configuration
public class RequestLoggingConfig {

   @Bean
   public CommonsRequestLoggingFilter logFilter() {
       CommonsRequestLoggingFilter filter
            = new CommonsRequestLoggingFilter();

       filter.setIncludeQueryString(true);
       filter.setIncludePayload(true);
       filter.setMaxPayloadLength(10000);
       filter.setIncludeHeaders(true);
       filter.setAfterMessagePrefix("REQUEST DATA : ");
       return filter;
    }
}

问题是,此配置类位于我的“ Core”模块中,我将其作为依赖项添加到我的应用程序中,该核心模块具有自己的属性文件core.properties

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

我的应用程序具有其自己的application.properties,其中不包括上面的行,它还具有一个@PropertySource("classpath:core.properties")批注以使用核心模块属性文件。运行应用程序时,可以看到过滤器已配置,并且如果我转到/actuator/env端点,则会看到属性集

[...]
{
            "name": "class path resource [core.properties]",
            "properties": {
                "management.endpoints.web.exposure.include": {
                    "value": "*"
                },
                "spring.jackson.default-property-inclusion": {
                    "value": "non_null"
                },
                "spring.jackson.mapper.default-view-inclusion": {
                    "value": "true"
                }
            }
        }
[...]

但是我没有收到我发出的请求的日志,如果我把这一行放在那儿,这很有趣 logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG

在application.properties文件中,日志运行正常。 我的问题是:我在做什么错?我还有其他步骤吗?

1 个答案:

答案 0 :(得分:0)

您是否使用logback.xml文件记录日志?如果那样的话,也许您也可以尝试更新此文件。

您是否重建了JAR / WAR文件? (如果在intellij上,则可能尝试启动构建以确保所有内容都是最新的!)

还使用执行器,您可以查看(并且也可以更改,但这不是重点)记录级别。调用记录器端点时会看到什么?