我们有在Ubuntu服务器上运行的Tomcat实例。 它运行一个networking服务,向互联网开放。
有时会突然出现交通堵塞,并且下降。 Tomcat访问日志中没有任何exception。 我想这是因为一些请求是如此“沉重”,他们永远不会完成,因此不logging到Tomcat的访问日志。
有没有办法configurationTomcat在执行之前logging传入的请求? 每个请求应以下面的格式logging
date,时间,URL(带查询string参数),IP地址(客户端)
每个请求应该有一行。 只有传入端口80和443的请求应该被logging。
Tomcat的AccessLogValve具有默认为true
的buffered
configuration选项,这意味着如果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。