java - 如何记录 RESTful 发布数据?

标签 java spring rest logging

我们通过 Spring MVC 公开了 REST 服务。我们使用 HandlerExceptionResolver 来记录异常。我们目前记录以下内容:

  • 异常及其堆栈跟踪
  • 网址
  • 请求 header

如果我们也可以记录 JSON 发布数据,那么调试会更容易。关于如何获得这个有什么建议吗?

最佳答案

将此添加到代表应用程序配置的类中:

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);

关于java - 如何记录 RESTful 发布数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12371168/

相关文章:

java - JAVA 中具有 2 个以上字节的 UTF8 字符串的 Substring 或 characterAt 方法

java - Spring数据休息+Spring安全: @Secured not working

java - 有没有办法使用 JPA 存储库方法关键字来搜索列中的术语列表?

forms - Symfony2 表单提交无效的 boolean 值

rest - 文件转换服务的有效 REST 方法是什么?

database - go rest api 服务器设计良好实践

java - 在生产中使用 p6spy

Java重复条目和性能问题

java - 我们是否需要在Spring云合约中 stub 其他微服务

java - 以编程方式插入架构