首页 文章

如何使用Web响应实现通用HTTP请求/响应日志记录

提问于
浏览
1

使用“传统”Web框架,可以使用例如AbstractRequestLoggingFilter用于实现通用日志记录筛选器 . 对于web-reactive,不再调用过滤器(有意义的是,因为它在HttpServletRequest上运行) .

任何人都可以指出我正确的方向来实现带有web-reactive的请求过滤器,它会在请求之前和之后记录HTTP请求,包括它的正文,就像在AbstractRequestLoggingFilter中一样?

1 回答

  • 2

    您可以实现 WebFilter 并将其声明为bean,它将自动拾取 .

    请注意, WebFilter 合约基于 ServerWebExchange ,其中包含 ServerHttpRequest . 身体不能直接作为 byte[] 访问,而是作为 Flux<DataBuffer> ;这并不意味着在内存中缓冲或由过滤器使用,因此记录整个请求主体比在MVC方案中更复杂 . 此外,您应该避免在请求处理期间阻止操作 .

相关问题