CommonsRequestLoggingFilter在Spring Boot应用程序中不起作用

Sim*_*aur 4 spring-boot

我已经将此@Bean添加到我具有main功能的类中

@Bean
    public CommonsRequestLoggingFilter requestLoggingFilter() {
         System.out.println("inside logging filter");
        CommonsRequestLoggingFilter loggingFilter = new CommonsRequestLoggingFilter();
        loggingFilter.setIncludeClientInfo(true);
        loggingFilter.setIncludeQueryString(true);
        loggingFilter.setIncludePayload(true);
        loggingFilter.setIncludeHeaders(false);
        return loggingFilter;
    }
Run Code Online (Sandbox Code Playgroud)

在应用程序启动时,

inside logging filter
Run Code Online (Sandbox Code Playgroud)

在控制台中打印出来,但是当我从调用方法时我没有看到任何请求记录RestController

这是为什么?我如何解决它?

我已经加了

logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG
Run Code Online (Sandbox Code Playgroud)

application.properties文件中

小智 5

我遇到过同样的情况,可以通过删除日志设置来解决。

logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG
Run Code Online (Sandbox Code Playgroud)

它在没有此设置的情况下运行。

另外,如果要更改日志级别,则可以定义类扩展AbstractRequestLoggingFilter并像这样编写日志。

@Override
protected void beforeRequest(HttpServletRequest request, String message) {
    logger.info(message);
}

@Override
protected void afterRequest(HttpServletRequest request, String message) {
    logger.info(message);
}
Run Code Online (Sandbox Code Playgroud)