Подобный вопрос уже задавался Переполнение стека но не было дано полезного ответа, и я думаю, что он подходит здесь лучше.
Мне нужно зарегистрировать микросекунды или миллисекунды первого времени ответа. Я следовал формату, указанному в документации для apache 2.2. http://httpd.apache.org/docs/2.2/mod/mod_log_config.html (Я использую apache 2.2.3), но он не работает. Я изменил формат журнала в /etc/httpd/conf/httpd.conf на:
LogFormat "%h %l %u %t %{usec_frac}t \"%r\" %>s %b %D" test
Результат, который я получаю:
IPaddress - - [10/Oct/2015:19:47:46 +0200] usec_frac "GET /w/images/thumb/f/fa/Wikiquote-logo.svg/35px-Wikiquote-logo.svg.png HTTP/1.1" 200 1931 86
Так usec_frac
не разрешается, но он указан в документации как возможный формат для %{format}t
. Я использую CentOS версии 5.8 (Final), и я редактировал httpd.conf с помощью vi. В чем может быть проблема?
Как написано в официальной документации, которую вы связали:
%{UNIT}T
Время, затраченное на обслуживание запроса, в единицах времени, заданных UNIT. Допустимые единицы измерения: миллисекунды в миллисекундах, микросекунды в миллисекундах и секунды в секундах. Использование s дает тот же результат, что и% T без какого-либо формата; использование us дает тот же результат, что и% D. Объединение% T с единицей доступно в 2.2.30 и новее.
Я не знаю, как решить проблему с Apache 2.2.3, но ...
Если ничего не помогает, изучите следующее (в зависимости от того, насколько это важно для вас)
Я только что тестировал 2.4.10, и он работает
127.0.0.1 - - [11/Oct/2015:16:37:50 -0400] 156545 "GET /cgi-bin/test.cgi HTTP/1.1" 200 175 1206218