如何configurationTomcat在执行之前logging请求?

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

有时会突然出现交通堵塞,并且下降。 Tomcat访问日志中没有任何exception。 我想这是因为一些请求是如此“沉重”,他们永远不会完成,因此不logging到Tomcat的访问日志。

有没有办法configurationTomcat在执行之前logging传入的请求? 每个请求应以下面的格式logging

date,时间,URL(带查询string参数),IP地址(客户端)

每个请求应该有一行。 只有传入端口80和443的请求应该被logging。

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

您可能想尝试将buffered设置为false ,然后使阀门在每个请求上刷新日志,同时要考虑到这可能会影响整体性能。

另一个select是将例如Apache反向代理放置在Tomcat之前(使用mod_proxy,mod_jk,mod_ajp或mod_cluster),并使其进行请求logging。