access_log можно вести отдельно для каждого location'а, можно вести
несколько логов для одного locaiton'а, можно отключать.
Игорь, а можно ли информацию как-то писать и в общий лог (всего
сервера), и в логи отдельных виртуальных серверов?
http {
access_log log/main.log;
server {
access_log log/main.log;
access_log log/server1.log;
}
server {
access_log log/main.log;
access_log log/server2.log;
}
А насколько медленнее (если вообще это имеет место быть) пишутся логи на
каждый виртуальный сервер отдельно, чем один на всех? Закономерность та же,
что и у апача - чем больше открыто логов, тем медленнее работает?
Будет медленее, но вот насколько - сказать не могу. Сегодня, например,
добавил я на www.rambler.ru еще один лог для "= /", но изменения в
утилизации процессора не заметил.
Сейчас одна запись в лог - это один сисколл. Это и составляет основной
оверхед. Создание текста записи достаточно быстрое - парсинг формата
делается на старте и компилируется в псевдокод, который уже выполняется
в run-time. В планах есть буферизация записи логов, скажем, до
32K (настраиваемо), а потом запись в файл.
Игорь Сысоев
http://sysoev.ru