我们在 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。
您可能想要尝试设置buffered
为false
,这将使阀门在每次请求时刷新日志,请记住这可能会影响整体性能。
另一个选择是在 Tomcat 前面放置一个 Apache 反向代理(使用 mod_proxy、mod_jk、mod_ajp 或 mod_cluster)并让它执行请求日志记录。