我有一个apache web服务器,当某个用户访问某个页面时,我得到一个时间戳不同步的日志行。
示例输出:
IP1 - - [22/Jun/2009:12:20:40 +0000] "GET URL1" 200 3490 "REFERRING_URL1" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"
IP2 - - [22/Jun/2009:12:11:47 +0000] "GET URL2" 200 17453 "-" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.0.11) Gecko/2009060214 Firefox/3.0.11"
IP3 - - [22/Jun/2009:12:20:41 +0000] "GET URL3" 200 889 "REFERRING_URL2" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; 3P_USEC 1.0.11.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618)"
(我已匿名请求IP - IP1,IP2和IP3,请求的URL - URL1,URL2和URL3以及两个引用者URL)
可以看出,三行(按此顺序出现在日志中)不同步。这仅在IP2请求URL2时发生 - 所有其他日志似乎都正常。
有什么想法吗?
答案 0 :(得分:23)
在请求完成时写入日志,因此可以在较晚的请求之后写入早期请求。将%D添加到游览LogFormat定义以查看提供请求所用的时间(以微秒为单位)。
查看更多here
答案 1 :(得分:0)
也许你正在做某种COMET请求?
我的第一个想法是日志只记录请求完成的时间?因此,IP1的请求可能需要一段时间才能完成,但是在IP2之前就已经到了。只有我知道的行为是AJAXey Comet请求。
可能不是正确的答案,也许是一个线索。
修改:http://www.linuxquestions.org/questions/linux-networking-3/apache-log-entries-order-516354/确认日志中的时间包括将内容传输到浏览器所需的时间。