1

我在 Tomcat 8 中部署了一个 WAR 文件。它使用的是 Spring Boot,这几乎是偶然的。

我想记录客户端完成使用我的 http 响应需要多长时间,因为我的响应主体很大。这意味着过滤器链早已完成——有时是几分钟前——HttpServletResponse 的 ServletOutputStream 已被客户端完全使用。

Tomcat Valve %D 是否涵盖这种情况? https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html#Access_Log_Valve/Attributes我不确定阅读文档。

如果没有,我该如何捕捉它?我基本上想在调用 ServletOutputStream.close() 时记录时间戳,对吗?我怎样才能做到这一点?

4

1 回答 1

0

我发现的最佳解决方案是在我的 tomcat(haproxy)前面放置一个负载均衡器,将其切换到 HTTP 模式,并以这种方式记录。然而,我更喜欢 TCP 路由,因为它对我的用例来说要快得多。还有其他建议吗?

于 2019-06-28T18:19:30.680 回答