All*_*afe 5 java spring-mvc spring-boot
我正在使用 Spring Boot 和 REST 服务,使用@RestController. 我想用有效负载记录所有请求和响应。我该如何使用 来做到这一点Spring Boot Actuator?当我使用:
@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;
}
Run Code Online (Sandbox Code Playgroud)
我只收到请求,但没有收到响应。
Iha*_*kau -1
您可以使用addInterceptors以下方法WebMvcConfigurer
@Configuration
@EnableWebMvc
class WebMvcConfiguration : WebMvcConfigurer {
override fun addInterceptors(registry: InterceptorRegistry) {
registry.addInterceptor(LoggingInterceptor())
}
}
Run Code Online (Sandbox Code Playgroud)
这是拦截器的一个很好的例子。
更新
您可以覆盖 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();
}
}
Run Code Online (Sandbox Code Playgroud)
不确定您的格式,但您可以尝试使用:
logging:
level:
org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor: debug //response
org.apache.coyote.http11.Http11InputBuffer: debug //request
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21595 次 |
| 最近记录: |