Строки лога Apache появляются не по порядку - почему? - PullRequest
17 голосов
/ 22 июня 2009

У меня есть веб-сервер 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 и два URL-адреса реферера)

Как видно, три строки (которые появились в журнале в этом порядке) не синхронизированы. Это происходит только тогда, когда IP2 запрашивает URL2 - все остальные журналы кажутся нормальными.

Есть идеи?

Ответы [ 2 ]

24 голосов
/ 23 июня 2009

Журналы записываются по завершении запроса, поэтому ранние длинные запросы могут записываться после поздних коротких. Добавьте %D к определению LogFormat, чтобы увидеть время, затраченное на обработку запроса, в микросекундах.

Подробнее здесь

0 голосов
/ 22 июня 2009

Может быть, вы делаете какие-то запросы COMET?

Сначала я подумал, что в журнал записывается только время завершения запроса? Так что, возможно, запрос IP1 занял некоторое время, но пришел до IP2. Только запросы, которые я знаю, которые ведут себя таким образом, являются запросами AJAXey Comet.

Возможно, не правильный ответ, возможно, подсказка.

Редактировать : http://www.linuxquestions.org/questions/linux-networking-3/apache-log-entries-order-516354/ подтверждает, что время в журнале включает время, необходимое для передачи содержимого в браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...