Mercurial > hg > nginx-site
annotate xml/en/docs/debugging_log.xml @ 3059:535317a031ff
Free nginx: stop using the archaic spelling "e-mail".
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 14 Feb 2024 20:08:16 +0300 |
parents | 8a61d0ed67fa |
children |
rev | line source |
---|---|
580
be54c443235a
Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents:
516
diff
changeset
|
1 <!-- |
be54c443235a
Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents:
516
diff
changeset
|
2 Copyright (C) Igor Sysoev |
be54c443235a
Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents:
516
diff
changeset
|
3 Copyright (C) Nginx, Inc. |
be54c443235a
Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents:
516
diff
changeset
|
4 --> |
be54c443235a
Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents:
516
diff
changeset
|
5 |
50 | 6 <!DOCTYPE article SYSTEM "../../../dtd/article.dtd"> |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
7 |
123
7db449e89e92
Unified the use of the "name" attribute instead of "title".
Ruslan Ermilov <ru@nginx.com>
parents:
50
diff
changeset
|
8 <article name="A debugging log" |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
9 link="/en/docs/debugging_log.html" |
589 | 10 lang="en" |
3051
8a61d0ed67fa
Free nginx: no packages are provided for now.
Maxim Dounin <mdounin@mdounin.ru>
parents:
2938
diff
changeset
|
11 rev="7"> |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
12 |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
13 |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
14 <section> |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
15 |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
16 <para> |
213 | 17 To enable a debugging log, nginx needs to be configured to support |
18 debugging during the build: | |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
19 |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
20 <programlisting> |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
21 ./configure --with-debug ... |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
22 </programlisting> |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
23 |
271 | 24 Then the <literal>debug</literal> level should be set with the |
213 | 25 <link doc="ngx_core_module.xml" id="error_log"/> directive: |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
26 |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
27 <programlisting> |
213 | 28 error_log /path/to/log debug; |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
29 </programlisting> |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
30 |
1701
0108c6525d2a
Added info about linux packages to "Debugging log".
Fedor Dikarev <fe@nginx.com>
parents:
1479
diff
changeset
|
31 To verify that nginx is configured to support debugging, |
0108c6525d2a
Added info about linux packages to "Debugging log".
Fedor Dikarev <fe@nginx.com>
parents:
1479
diff
changeset
|
32 run the <command>nginx -V</command> command: |
0108c6525d2a
Added info about linux packages to "Debugging log".
Fedor Dikarev <fe@nginx.com>
parents:
1479
diff
changeset
|
33 |
0108c6525d2a
Added info about linux packages to "Debugging log".
Fedor Dikarev <fe@nginx.com>
parents:
1479
diff
changeset
|
34 <programlisting> |
0108c6525d2a
Added info about linux packages to "Debugging log".
Fedor Dikarev <fe@nginx.com>
parents:
1479
diff
changeset
|
35 configure arguments: --with-debug ... |
0108c6525d2a
Added info about linux packages to "Debugging log".
Fedor Dikarev <fe@nginx.com>
parents:
1479
diff
changeset
|
36 </programlisting> |
0108c6525d2a
Added info about linux packages to "Debugging log".
Fedor Dikarev <fe@nginx.com>
parents:
1479
diff
changeset
|
37 |
213 | 38 The nginx binary version for Windows is always built with the debugging log |
271 | 39 support, so only setting the <literal>debug</literal> level will suffice. |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
40 </para> |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
41 |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
42 <para> |
271 | 43 Note that redefining the log without also specifying the |
44 <literal>debug</literal> | |
213 | 45 level will disable the debugging log. |
46 In the example below, redefining the log on the | |
47 <link doc="http/ngx_http_core_module.xml" id="server"/> | |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
48 level disables the debugging log for this server: |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
49 <programlisting> |
213 | 50 error_log /path/to/log debug; |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
51 |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
52 http { |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
53 server { |
213 | 54 error_log /path/to/log; |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
55 ... |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
56 </programlisting> |
213 | 57 To avoid this, either the line redefining the log should be |
271 | 58 commented out, or the <literal>debug</literal> level specification should |
213 | 59 also be added: |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
60 <programlisting> |
213 | 61 error_log /path/to/log debug; |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
62 |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
63 http { |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
64 server { |
213 | 65 error_log /path/to/log debug; |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
66 ... |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
67 </programlisting> |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
68 </para> |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
69 |
1448
d3390895fe6e
Added subchapter in the "Debugging log" article.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
589
diff
changeset
|
70 </section> |
d3390895fe6e
Added subchapter in the "Debugging log" article.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
589
diff
changeset
|
71 |
d3390895fe6e
Added subchapter in the "Debugging log" article.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
589
diff
changeset
|
72 |
d3390895fe6e
Added subchapter in the "Debugging log" article.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
589
diff
changeset
|
73 <section id="clients" name="Debugging log for selected clients"> |
d3390895fe6e
Added subchapter in the "Debugging log" article.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
589
diff
changeset
|
74 |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
75 <para> |
516
8e1356bd281a
Documented the "debug_connection" directive.
Ruslan Ermilov <ru@nginx.com>
parents:
271
diff
changeset
|
76 It is also possible to enable the debugging log for |
8e1356bd281a
Documented the "debug_connection" directive.
Ruslan Ermilov <ru@nginx.com>
parents:
271
diff
changeset
|
77 <link doc="ngx_core_module.xml" id="debug_connection">selected |
8e1356bd281a
Documented the "debug_connection" directive.
Ruslan Ermilov <ru@nginx.com>
parents:
271
diff
changeset
|
78 client addresses</link> only: |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
79 |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
80 <programlisting> |
213 | 81 error_log /path/to/log; |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
82 |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
83 events { |
213 | 84 debug_connection 192.168.1.1; |
85 debug_connection 192.168.10.0/24; | |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
86 } |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
87 </programlisting> |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
88 </para> |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
89 |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
90 </section> |
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
91 |
1449
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
92 |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
93 <section id="memory" name="Logging to a cyclic memory buffer"> |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
94 |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
95 <para> |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
96 The debugging log can be written to a cyclic memory buffer: |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
97 <programlisting> |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
98 error_log memory:32m debug; |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
99 </programlisting> |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
100 Logging to the memory buffer on the <literal>debug</literal> level |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
101 does not have significant impact on performance even under high load. |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
102 In this case, the log can be extracted using |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
103 a <command>gdb</command> script like the following one: |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
104 <example> |
1479
64ed0ce8ac5e
Fixed the gdb script for dumping in-memory debug log.
Valentin Bartenev <vbart@nginx.com>
parents:
1449
diff
changeset
|
105 set $log = ngx_cycle->log |
1449
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
106 |
1479
64ed0ce8ac5e
Fixed the gdb script for dumping in-memory debug log.
Valentin Bartenev <vbart@nginx.com>
parents:
1449
diff
changeset
|
107 while $log->writer != ngx_log_memory_writer |
64ed0ce8ac5e
Fixed the gdb script for dumping in-memory debug log.
Valentin Bartenev <vbart@nginx.com>
parents:
1449
diff
changeset
|
108 set $log = $log->next |
1449
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
109 end |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
110 |
1479
64ed0ce8ac5e
Fixed the gdb script for dumping in-memory debug log.
Valentin Bartenev <vbart@nginx.com>
parents:
1449
diff
changeset
|
111 set $buf = (ngx_log_memory_buf_t *) $log->wdata |
64ed0ce8ac5e
Fixed the gdb script for dumping in-memory debug log.
Valentin Bartenev <vbart@nginx.com>
parents:
1449
diff
changeset
|
112 dump binary memory debug_log.txt $buf->start $buf->end |
1449
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
113 </example> |
2938
b274d289798d
Documented the use of cyclic memory buffer log with lldb.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1701
diff
changeset
|
114 Or using an <command>lldb</command> script as follows: |
b274d289798d
Documented the use of cyclic memory buffer log with lldb.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1701
diff
changeset
|
115 <example> |
b274d289798d
Documented the use of cyclic memory buffer log with lldb.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1701
diff
changeset
|
116 expr ngx_log_t *$log = ngx_cycle->log |
b274d289798d
Documented the use of cyclic memory buffer log with lldb.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1701
diff
changeset
|
117 expr while ($log->writer != ngx_log_memory_writer) { $log = $log->next; } |
b274d289798d
Documented the use of cyclic memory buffer log with lldb.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1701
diff
changeset
|
118 expr ngx_log_memory_buf_t *$buf = (ngx_log_memory_buf_t *) $log->wdata |
b274d289798d
Documented the use of cyclic memory buffer log with lldb.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1701
diff
changeset
|
119 memory read --force --outfile debug_log.txt --binary $buf->start $buf->end |
b274d289798d
Documented the use of cyclic memory buffer log with lldb.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1701
diff
changeset
|
120 </example> |
1449
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
121 </para> |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
122 |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
123 </section> |
c79501e16e26
Documented cyclic memory buffer support for error_log.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1448
diff
changeset
|
124 |
0
61e04fc01027
Initial import of the nginx.org website.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
125 </article> |