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

时间:2019-01-04 09:00:27

标签: 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;
    }

在应用程序启动时,

inside logging filter

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

那是为什么?我该如何解决?

我已经添加了

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

application.properties文件中

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

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

答案 1 :(得分:0)

尝试在 application.properties 文件中将级别更改为 TRACE:

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

DEBUG 对我不起作用,但 TRACE 起作用了。