=encoding utf-8 =head1 Name debugging_log - A debugging log =head1 To enable a debugging log, nginx needs to be configured to support debugging during the build: ./configure --with-debug ... Then the C level should be set with the L directive: error_log /path/to/log debug; To verify that nginx is configured to support debugging, run the C command: configure arguments: --with-debug ... Pre-built L packages provide out-of-the-box support for debugging log with the C binary (1.9.8) which can be run using commands service nginx stop service nginx-debug start and then set the C level. The nginx binary version for Windows is always built with the debugging log support, so only setting the C level will suffice. Note that redefining the log without also specifying the C level will disable the debugging log. In the example below, redefining the log on the L level disables the debugging log for this server: error_log /path/to/log debug; http { server { error_log /path/to/log; ... To avoid this, either the line redefining the log should be commented out, or the C level specification should also be added: error_log /path/to/log debug; http { server { error_log /path/to/log debug; ... =head1 Debugging log for selected clients It is also possible to enable the debugging log for L only: error_log /path/to/log; events { debug_connection 192.168.1.1; debug_connection 192.168.10.0/24; } =head1 Logging to a cyclic memory buffer The debugging log can be written to a cyclic memory buffer: error_log memory:32m debug; Logging to the memory buffer on the C level does not have significant impact on performance even under high load. In this case, the log can be extracted using a C script like the following one: 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 Or using an C script as follows: expr ngx_log_t *$log = ngx_cycle->log expr while ($log->writer != ngx_log_memory_writer) { $log = $log->next; } expr ngx_log_memory_buf_t *$buf = (ngx_log_memory_buf_t *) $log->wdata memory read --force --outfile debug_log.txt --binary $buf->start $buf->end