头图

1. 需求描述

在实际的开发中,为了日志审计、调试验证,经常有输出 Web 请求和响应报文的需求。传统的做法可以在 JavaEE 的 Filter 或者 Spring MVC 提供的 Interceptor 中实现。

上述实现方式存在一个问题就是请求报文是流式传递的,如果对当前报文流读取并进行输出,controller层会得不到报文,因此通常采用 Wrapper 的方式对 HttpServletRequest 对象进行包装。

2. Spring Boot 提供的开箱即用配置

Spring Boot 对上述功能提供了开箱即用的功能,只需要做如下两个配置:

  1. 配置 web 组的日志级别为 debug

    logging.level.web=debug
  2. 配置输出日志参数

    # for servlet 
    spring.mvc.log-request-details=true
    # properties for reactive
    # spring.codec.log-request-details=true
如上配置即可实现请求响应报文的输出

TRAMP
12 声望1 粉丝