2009-06-22 16 views
14

我有一個Apache Web服務器,當某個用戶訪問某個頁面時,我得到一個日誌行,其時間戳不同步。Apache日誌行出現亂序 - 爲什麼?

輸出示例:

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,兩個referrrer網址)

既然可以看到三行(出現在日誌中的順序)不同步。這隻發生在IP2請求URL2時 - 所有其他日誌看起來都正常。

任何想法?

回答

20

當請求完成時,會寫入日誌,因此可能會在較晚的請求之後寫入較早的請求。添加%D以瀏覽LogFormat定義以查看提供請求所用的時間(以微秒爲單位)。

查看更多here

0

也許你正在做某種COMET請求?

我的第一個想法是,日誌只記錄了請求完成的時間?所以也許IP1的請求需要一段時間才能完成,但是在IP2之前到達。只有我知道這樣做的請求是AJAXey Comet請求。

可能不是正確的答案,也許是一個線索。

編輯http://www.linuxquestions.org/questions/linux-networking-3/apache-log-entries-order-516354/確認日誌中的時間包括將內容傳輸到瀏覽器所需的時間。

+0

不,沒有什麼奇特的。進一步來看,這個設備似乎是一個移動設備(通過它的IP),但這似乎有點奇怪,有問題的頁面(總共約210k)需要將近9分鐘才能加載。 – PaulJWilliams 2009-06-22 14:53:30