当前位置: 首页 > 知识库问答 >
问题:

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

吉泰宁
2023-03-14
    @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;
    }

我只收到请求,没有回应。

共有1个答案

景河
2023-03-14

您可以使用WebMVCConfigureerAddInterceptors方法

@Configuration
@EnableWebMvc
class WebMvcConfiguration : WebMvcConfigurer {

  override fun addInterceptors(registry: InterceptorRegistry) {
      registry.addInterceptor(LoggingInterceptor())
  }
}

这里是拦截器的一个很好的例子。

已更新

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
 类似资料:
  • 我有一个spring应用程序,它可以与Mobile交换JSON。Spring控制器如下所示: 我想知道,记录http请求正文和响应正文的最佳方式是什么?目前,我有一个定制的json消息转换器,它在从json中创建bean之前记录一个请求正文。我使用CustomTraceInterceptor记录响应正文。不幸的是,CustomTraceInterceptor不允许记录请求正文。 任何更好的解决方案

  • 问题内容: 我需要所有已登录的SOAP请求,以及持续时间(处理请求所花费的时间)。 最好的方法是什么?看起来可以为Spring WebServices配置log4j,但是它将记录所有值吗? 将以下行添加到log4j.xml 编辑:我们实际上是在使用,而不是。另外,看起来可以通过配置PayloadLoggingInterceptor来做到这一点 但是我不确定日志消息会去哪里。我将该拦截器添加到了我们

  • 应用程序应异步(在单独的线程中)记录以下信息,而不会影响客户端。 请求HTTP方法和URI 如果我们在过滤器中使用,那么spring将无法再次使用它进行json到对象的映射。在输入流到对象映射期间的某个地方,我们可以插入记录器吗? 更新: 我们可以在MessageConverter中编写日志代码,但这似乎不是一个好主意。

  • ----在2019-06-03@13:21 CET下面添加信息----因为我有一个普通的Spring(非引导)应用程序接受来自打印机的POST请求,所以我能够在传入的请求中记录信息。所以我就这么做了。 这是来自打印机的POST请求之一,Spring boot Oontroller不接受它: 这是Postman向完全相同的URL发送的POST请求之一,Spring boot Oontroller接受

  • 我有一些REST服务,我想记录请求和响应。它们接收一个JSON请求并生成另一个JSON响应。我创建了一个拦截器,但无法获取请求/响应正文。这是我的cxf配置: 这是我的拦截器代码: ContextMessageInInterceptor和ContextMessageOutInterceptor工作正常,它们分别转到ContextJSONInInterceptor和ContextJSONOutInt

  • 我在我的应用程序中使用了Spring-Boot1.3.1和Spring-Boot-Actutor。我使用作为中的父级。 为了禁用安全性,我在中添加了2个条目。 它仍然没有禁用基本的安全性。当我在本地Tomcat中启动应用程序时,我看到日志文件中的默认密码。