Mercurial > hg > nginx-site
view xml/ru/docs/debugging_log.xml @ 2846:fdf1464e1977
Moved banner to the external file to make partial rollout possible.
An idea is to have several banners and show them with different probability
specified by split directive in the nginx.conf
author | Sergey Budnevitch <sb@waeme.net> |
---|---|
date | Tue, 10 May 2022 18:07:27 +0400 |
parents | 0108c6525d2a |
children | b274d289798d |
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="5"> <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> Чтобы убедиться, что поддержка отладки сконфигурирована, необходимо выполнить команду <command>nginx -V</command>: <programlisting> configure arguments: --with-debug ... </programlisting> Готовые пакеты для <link doc="../linux_packages.xml">Linux</link> по умолчанию предоставляют поддержку отладочного лога при помощи бинарного файла <literal>nginx-debug</literal> (1.9.8), который можно запустить при помощи команд <programlisting> service nginx stop service nginx-debug start </programlisting> и затем задать уровень <literal>debug</literal>. Бинарная версия 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>