Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用弹簧引导执行器记录所有请求和响应_Java_Spring Mvc_Spring Boot - Fatal编程技术网

Java 使用弹簧引导执行器记录所有请求和响应

Java 使用弹簧引导执行器记录所有请求和响应,java,spring-mvc,spring-boot,Java,Spring Mvc,Spring Boot,我使用@RestController使用Spring引导和REST服务。我想用有效负载记录所有请求和响应。如何使用弹簧启动执行器执行此操作?当我使用: @Bean public ServletContextRequestLoggingFilter requestLoggingFilter() { ServletContextRequestLoggingFilter loggingFilter = new ServletContextRequestLoggingFi

我使用
@RestController
使用Spring引导和REST服务。我想用有效负载记录所有请求和响应。如何使用
弹簧启动执行器执行此操作?当我使用:

    @Bean
    public ServletContextRequestLoggingFilter requestLoggingFilter() {
        ServletContextRequestLoggingFilter loggingFilter = new ServletContextRequestLoggingFilter();
        loggingFilter.setIncludeClientInfo(true);
        loggingFilter.setIncludeQueryString(true);
        loggingFilter.setIncludePayload(true);
        loggingFilter.setIncludeHeaders(true);
        loggingFilter.setMaxPayloadLength(10000);
        loggingFilter.setAfterMessagePrefix("REQUEST DATA : ");
        return loggingFilter;
    }

我只收到请求,但没有收到响应。

您可以使用
webmvcconfiguer的
addInterceptors
方法

@Configuration
@EnableWebMvc
class WebMvcConfiguration : WebMvcConfigurer {

  override fun addInterceptors(registry: InterceptorRegistry) {
      registry.addInterceptor(LoggingInterceptor())
  }
}
这是拦截器的一个很好的例子

已更新

您可以覆盖Spring
LoggingFilter

public class CustomLoggingFilter extends LoggingFilter
{
     @Override
     protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException
     {
          super.doFilterInternal(request, response, filterChain);
     }
}

@Configuration
public Config {
    @Bean
    public CustomLoggingFilter loggingFilter()
    {
        return new CustomLoggingFilter();
    }
}
不确定您的格式,但您可以尝试使用:

logging:
  level: 
    org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor: debug //response
    org.apache.coyote.http11.Http11InputBuffer: debug //request

我试着这样做:但它不适合我,不要记录!您的示例没有有效负载的日志记录。没有有效载荷,一切都变得容易!我看到了。它使用DispatcherServlet
,但我使用的是
Spring Boot
可能与