Отладочный лог
Отладочный лог для определённых клиентов Запись в кольцевой буфер в памяти |
Чтобы включить отладочный лог, при сборке следует сконфигурировать nginx с поддержкой отладки:
./configure --with-debug ...
Затем нужно задать уровень debug
с помощью
директивы error_log:
error_log /path/to/log debug;
Бинарная версия nginx для Windows всегда собирается с поддержкой отладочного
лога, поэтому понадобится лишь задать уровень debug
.
Обратите внимание, что переопределение лога без одновременного указания
уровня debug
отключит отладочный лог.
В примере ниже, переопределение лога на уровне
server
отключает отладочный лог для этого сервера:
error_log /path/to/log debug; http { server { error_log /path/to/log; ...
Чтобы избежать этого, следует либо закомментировать строку, переопределяющую
лог, либо добавить определение уровня debug
:
error_log /path/to/log debug; http { server { error_log /path/to/log debug; ...
Отладочный лог для определённых клиентов
Можно включить отладочный лог только для определённых клиентских адресов:
error_log /path/to/log; events { debug_connection 192.168.1.1; debug_connection 192.168.10.0/24; }
Запись в кольцевой буфер в памяти
Отладочный лог можно записывать в кольцевой буфер в памяти:
error_log memory:32m debug;
Запись в буфер в памяти на уровне debug
не оказывает существенного влияния на производительность
даже при высоких нагрузках.
В этом случае лог может быть извлечён при помощи
gdb
-скрипта, подобного следующему:
set $log = ngx_cycle->log while $log->writer != ngx_log_memory_writer set $log = $log->next end set $buf = (ngx_log_memory_buf_t *) $log->wdata dump binary memory debug_log.txt $buf->start $buf->end