Возникла необходимость писать в лог только успешно окончившиеся запросы, т.е.
только со статусами 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
}
Игорь!
Насколько сложно/долго будет сделать такое?