ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

условное логгирование


  • To: nginx-ru@xxxxxxxxx
  • Subject: условное логгирование
  • From: Andrew Kopeyko <kaa@xxxxxxxxx>
  • Date: Mon, 13 Mar 2006 13:18:54 +0300 (MSK)

Добрый день всем!

Возникла необходимость писать в лог только успешно окончившиеся запросы, т.е. только со статусами 200 и 206.

В Апаче это реализуется так:

LogFormat "%200,206h %200,206t \"%200,206r\" %200,206>s %200,206b" common

При этом, правда, в лог Апача будут писаться строки
'- - "-" - -'
для запросов с отличными от 200 и 206 статусами...


Насколько я понимаю, реализовать такое условное логгирование доступными средствами nginx'а сейчас не получится...

Можно, конечно, пост-фактум обрабатывать лог и вырезать всё лишнее - но
фильтрация на ходу сильно уменьшит размер файла лога, что для меня очень
важно.


Я вижу 2 варианта реализации:

1. расширить синтаксис директивы access_log

access_log путь [формат [buffer=размер] [status[!]=статус1,статус2]]|off

2. добавить переменную $request_status и использовать её в конструкции if

if ($request_status ~* (200|206) {
   access_log /path/to/log logformat
}


Игорь!
Насколько сложно/долго будет сделать такое?


--
Best regards,
Andrew Kopeyko <kaa@xxxxxxxxx>


 




Copyright © Lexa Software, 1996-2009.