如何记录 RESTful 帖子数据?
我们通过Spring MVC公开了REST服务。我们使用 来记录异常。我们目前记录以下内容:HandlerExceptionResolver
- 异常及其堆栈跟踪
- 网址
- 请求标头
如果我们也可以记录JSON post数据,这将使调试更容易。关于如何获得这个的任何建议?
我们通过Spring MVC公开了REST服务。我们使用 来记录异常。我们目前记录以下内容:HandlerExceptionResolver
如果我们也可以记录JSON post数据,这将使调试更容易。关于如何获得这个的任何建议?
将以下内容添加到表示应用程序配置的类中:
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.filter.AbstractRequestLoggingFilter;
....
@Bean
public Filter loggingFilter(){
AbstractRequestLoggingFilter f = new AbstractRequestLoggingFilter() {
@Override
protected void beforeRequest(HttpServletRequest request, String message) {
System.out.println("beforeRequest: " +message);
}
@Override
protected void afterRequest(HttpServletRequest request, String message) {
System.out.println("afterRequest: " +message);
}
};
f.setIncludeClientInfo(true);
f.setIncludePayload(true);
f.setIncludeQueryString(true);
f.setBeforeMessagePrefix("BEFORE REQUEST [");
f.setAfterMessagePrefix("AFTER REQUEST [");
f.setAfterMessageSuffix("]\n");
return f;
}
您可能需要注释掉
f.setIncludePayload(true);
您需要一个过滤器,该过滤器将在读取请求正文时保存请求正文,并在以后将保存的数据提供给异常记录器。
Spring包含 AbstractRequestLoggingFilter
,它可以做类似的事情。虽然它不能直接适合您的问题,但您可以将其用作实现自己的筛选器的参考。