如何配置 Tomcat 以在执行请求之前记录请求?

如何配置 Tomcat 以在执行请求之前记录请求?

我们在 Ubuntu 服务器上运行了 Tomcat 实例。它运行一个向互联网开放的 Web 服务。

有时流量会突然激增,然后又下降。Tomcat 访问日志中没有任何异常。我猜是因为有些请求太“重”以至于它们永远无法完成,因此没有记录到 Tomcat 访问日志中。

有没有办法配置雄猫在执行传入请求之前记录它们?每个请求都应按以下格式记录

日期、时间、URL(带有查询字符串参数)、IP 地址(客户端)

每个请求应占一行。仅应记录对端口 80 和 443 的传入请求。

答案1

Tomcat 的 AccessLogValve 具有buffered默认为 的配置选项true,这意味着如果 Tomcat 崩溃,您可能会丢失缓冲区的日志。请参阅http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Access_Log_Valve

您可能想要尝试设置bufferedfalse,这将使阀门在每次请求时刷新日志,请记住这可能会影响整体性能。

另一个选择是在 Tomcat 前面放置一个 Apache 反向代理(使用 mod_proxy、mod_jk、mod_ajp 或 mod_cluster)并让它执行请求日志记录。

相关内容