1. 需求描述
在实际的开发中,为了日志审计、调试验证,经常有输出 Web 请求和响应报文的需求。传统的做法可以在 JavaEE 的 Filter 或者 Spring MVC 提供的 Interceptor 中实现。
上述实现方式存在一个问题就是请求报文是流式传递的,如果对当前报文流读取并进行输出,controller层会得不到报文,因此通常采用 Wrapper 的方式对 HttpServletRequest 对象进行包装。
2. Spring Boot 提供的开箱即用配置
Spring Boot 对上述功能提供了开箱即用的功能,只需要做如下两个配置:
配置 web 组的日志级别为 debug
logging.level.web=debug
配置输出日志参数
# for servlet spring.mvc.log-request-details=true # properties for reactive # spring.codec.log-request-details=true
如上配置即可实现请求响应报文的输出
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。