Mercurial > hg > nginx-site
view xml/en/docs/debugging_log.xml @ 1601:8854618e1ca5
Documented the "$realip_remote_addr" variable.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Fri, 13 Nov 2015 16:11:56 +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="A debugging log" link="/en/docs/debugging_log.html" lang="en" rev="4"> <section> <para> To enable a debugging log, nginx needs to be configured to support debugging during the build: <programlisting> ./configure --with-debug ... </programlisting> Then the <literal>debug</literal> level should be set with the <link doc="ngx_core_module.xml" id="error_log"/> directive: <programlisting> error_log /path/to/log debug; </programlisting> The nginx binary version for Windows is always built with the debugging log support, so only setting the <literal>debug</literal> level will suffice. </para> <para> Note that redefining the log without also specifying the <literal>debug</literal> level will disable the debugging log. In the example below, redefining the log on the <link doc="http/ngx_http_core_module.xml" id="server"/> level disables the debugging log for this server: <programlisting> error_log /path/to/log debug; http { server { error_log /path/to/log; ... </programlisting> To avoid this, either the line redefining the log should be commented out, or the <literal>debug</literal> level specification should also be added: <programlisting> error_log /path/to/log debug; http { server { error_log /path/to/log debug; ... </programlisting> </para> </section> <section id="clients" name="Debugging log for selected clients"> <para> It is also possible to enable the debugging log for <link doc="ngx_core_module.xml" id="debug_connection">selected client addresses</link> only: <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="Logging to a cyclic memory buffer"> <para> The debugging log can be written to a cyclic memory buffer: <programlisting> error_log memory:32m debug; </programlisting> Logging to the memory buffer on the <literal>debug</literal> level does not have significant impact on performance even under high load. In this case, the log can be extracted using a <command>gdb</command> script like the following one: <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>