|
|
|
| Вот строка из лога Apache 1.3
"81.200.20.121" "04/Jun/2009:00:15:49 MSD" "GET http://uz.msk.ru/emblem.gif HTTP/1.1" "302" "311" "http://uz.msk.ru/press.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10"
В отличие от стандартных форматов, в кавычки взяты не только текстовые, но и числовые поля. И поэтому привычный мне лог-анализатор Analog не распознает формат автоматически. Чтоб распознал, надо ему указать log format string в том самом виде, как она пишется в httpd.conf
Поэтому мой вопрос: что надо написать в конфигурации Apache, чтоб получить лог по приведенному выше образцу? Пытался решить методом тыка - не выходит...
Спасибо за помощь. | |
|
|
|
|
|
|
|
для: ilin
(05.06.2009 в 14:53)
| | Метод тыка состоял в чтении документации mod_log_config
http://httpd.apache.org/docs/2.2/mod/mod_log_config.html
и попытке применить прочитанное.
Кавычки надо экранировать бэкслэшем, так?
Но тогда непонятен пример в документации:
Common Log Format (CLF)
"%h %l %u %t \"%r\" %>s %b"
|
ведь в common-формате в кавычках пишется не только referer, но и другие текстовые поля.
Сейчас попробую поэкспериментировать с Апачем, подсовывая ему слегка модифицированную строку. | |
|
|
|
|
|
|
|
для: ilin
(05.06.2009 в 15:41)
| | Эксперименты привели к команде
LogFormat "\"%h\" \"%t\" \"%r\" \"%s\" \"%b\" \"%{Referer}i\" \"%{User-agent}i\""
Вот результат:
"127.0.0.1" "[05/Jun/2009:16:06:54 +0400]" "GET /igroki/photo.html HTTP/1.1" "200" "1895" "http://ugozapad.ru/photo.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
Осталось убрать скобки в поле времени. Как это сделать? | |
|
|
|
|
|
|
|
для: ilin
(05.06.2009 в 16:12)
| | Скобки убрал:
LogFormat "\"%h\" \"%{%d/%b/%Y:%T %z}t\" \"%r\" \"%s\" \"%b\" \"%{Referer}i\" \"%{User-agent}i\"" | |
|
|
|
|
|
|
|
для: ilin
(05.06.2009 в 16:27)
| | Ну вот... на свой вопрос ответил сам.
Теперь засовываю полученную строку в AnaLog - не работает:
APACHELOGFORMAT (\"%h\" \"%{%d/%b/%Y:%T %z}t\" \"%r\" \"%s\" \"%b\" \"%{Referer}i\" \"%{User-agent}i\")
Теперь вряд ли кто-то поможет... | |
|
|
|
|
|
|
|
для: ilin
(05.06.2009 в 16:32)
| | Уфф...
Analog understands all Apache log formats, with the exception that it won't parse Apache's "%...{format}t" construction for customised times: if you have this construction, you will have to use ordinary LOGFORMAT instead.
|
Пришлось сочинять format string в собственном формате AnaLog'a
Сочинил:
LOGFORMAT ("%S" "%d/%M/%Y:%h:%n:%j" "%j %r %j" "%c" "%b" "%f" "%B")
Оказывается, там не надо экранировать кавычки, поэтому раньше у меня не получалось.
Заработало! | |
|
|
|