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())
}
}
这是拦截器的一个很好的例子
已更新
您可以覆盖SpringLoggingFilter
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
可能与