Mercurial > hg > nginx-site
view xml/ru/docs/debugging_log.xml @ 1690:7d15391ce323
nginx-1.10.0
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 26 Apr 2016 16:53:19 +0300 |
parents | 64ed0ce8ac5e |
children | 0108c6525d2a |
line wrap: on
line source
<!-- Copyright (C) Igor Sysoev Copyright (C) Nginx, Inc. --> <!DOCTYPE article SYSTEM "../../../dtd/article.dtd"> <article name="Отладочный лог" link="/ru/docs/debugging_log.html" lang="ru" rev="4"> <section> <para> Чтобы включить отладочный лог, при сборке следует сконфигурировать nginx с поддержкой отладки: <programlisting> ./configure --with-debug ... </programlisting> Затем нужно задать уровень <literal>debug</literal> с помощью директивы <link doc="ngx_core_module.xml" id="error_log"/>: <programlisting> error_log /path/to/log debug; </programlisting> Бинарная версия nginx для Windows всегда собирается с поддержкой отладочного лога, поэтому понадобится лишь задать уровень <literal>debug</literal>. </para> <para> Обратите внимание, что переопределение лога без одновременного указания уровня <literal>debug</literal> отключит отладочный лог. В примере ниже, переопределение лога на уровне <link doc="http/ngx_http_core_module.xml" id="server"/> отключает отладочный лог для этого сервера: <programlisting> error_log /path/to/log debug; http { server { error_log /path/to/log; ... </programlisting> Чтобы избежать этого, следует либо закомментировать строку, переопределяющую лог, либо добавить определение уровня <literal>debug</literal>: <programlisting> error_log /path/to/log debug; http { server { error_log /path/to/log debug; ... </programlisting> </para> </section> <section id="clients" name="Отладочный лог для определённых клиентов"> <para> Можно включить отладочный лог только для <link doc="ngx_core_module.xml" id="debug_connection">определённых клиентских адресов</link>: <programlisting> error_log /path/to/log; events { debug_connection 192.168.1.1; debug_connection 192.168.10.0/24; } </programlisting> </para> </section> <section id="memory" name="Запись в кольцевой буфер в памяти"> <para> Отладочный лог можно записывать в кольцевой буфер в памяти: <programlisting> error_log memory:32m debug; </programlisting> Запись в буфер в памяти на уровне <literal>debug</literal> не оказывает существенного влияния на производительность даже при высоких нагрузках. В этом случае лог может быть извлечён при помощи <command>gdb</command>-скрипта, подобного следующему: <example> 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 </example> </para> </section> </article>