Spring Cloud Gateway如何配置开启HTTP请求/响应详细日志
HttpWebHandlerAdapter开启完整请求响应日志配置方案
当服务启动时出现如下日志,代表当前请求日志会对表单数据、请求头做掩码处理,无法查看完整请求响应详情:
org.springframework.web.server.adapter.HttpWebHandlerAdapter : enableLoggingRequestDetails='false': form data and headers will be masked to prevent unsafe logging of potentially sensitive data
重要提醒:开启完整日志打印后,会明文输出请求中携带的敏感信息,包括但不限于Cookie、Authorization认证头、表单提交的密码/密钥等,生产环境严禁开启,仅可用于本地调试、测试环境问题排查
配置方式1:配置文件设置(最简便)
直接在项目配置文件中添加对应参数即可,无需额外编写代码:
- YAML格式配置(application.yml):
spring: webflux: log-request-details: true
- Properties格式配置(application.properties):
spring.webflux.log-request-details=true
配置方式2:编码自定义配置
如果需要通过代码动态控制配置开关,可以编写WebFlux配置类手动设置参数:
import org.springframework.context.annotation.Configuration; import org.springframework.web.server.adapter.WebHttpHandlerBuilder; @Configuration public class WebFluxLogConfig { public WebFluxLogConfig(WebHttpHandlerBuilder handlerBuilder) { // 开启请求详情日志打印 handlerBuilder.enableLoggingRequestDetails(true); } }
生效校验
配置修改完成后重启服务,需要同时满足两个条件才算配置生效:
- 启动阶段不再出现
enableLoggingRequestDetails='false'的提示 - 保证
org.springframework.web.server.adapter.HttpWebHandlerAdapter的日志级别设置为DEBUG或TRACE,否则依然看不到完整请求日志
如果使用Logback作为日志框架,可以在logback配置文件中添加如下日志级别配置:
<logger name="org.springframework.web.server.adapter.HttpWebHandlerAdapter" level="DEBUG" additivity="false"> <appender-ref ref="CONSOLE"/> </logger>
配置完成后发起请求,控制台能看到明文打印的请求头、表单参数内容,就代表配置成功。
内容的提问来源于stack exchange,提问作者Nietzsche
相关产品推荐
相关产品推荐

