annotate src/core/ngx_log.h @ 9299:2706b60dc225 default tip

Core: error logging rate limiting. With this change, error logging to files can be rate-limited with the "rate=" parameter. The parameter specifies allowed log messages rate to a particular file (per worker), in messages per second (m/s). By default, "rate=1000m/s" is used. Rate limiting is implemented using the "leaky bucket" method, similarly to the limit_req module. Maximum burst size is set to the number of log messages per second for each severity level, so "error" messages are logged even if the rate limit is hit by "info" messages (but not vice versa). When the limit is reached for a particular level, the "too many log messages, limiting" message is logged at this level. If debug logging is enabled, either for the particular log file or for the particular connection, rate limiting is not used.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 25 Jun 2024 22:58:56 +0300
parents af5b47569cb2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
1
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
2 /*
444
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 441
diff changeset
3 * Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 4397
diff changeset
4 * Copyright (C) Nginx, Inc.
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
5 */
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
6
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
7
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #ifndef _NGX_LOG_H_INCLUDED_
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 #define _NGX_LOG_H_INCLUDED_
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
12 #include <ngx_config.h>
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
13 #include <ngx_core.h>
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
14
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15
307
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
16 #define NGX_LOG_STDERR 0
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
17 #define NGX_LOG_EMERG 1
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
18 #define NGX_LOG_ALERT 2
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
19 #define NGX_LOG_CRIT 3
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
20 #define NGX_LOG_ERR 4
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
21 #define NGX_LOG_WARN 5
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
22 #define NGX_LOG_NOTICE 6
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
23 #define NGX_LOG_INFO 7
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
24 #define NGX_LOG_DEBUG 8
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
25
379
73688d5d7fc3 nginx-0.0.7-2004-07-06-20:12:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 307
diff changeset
26 #define NGX_LOG_DEBUG_CORE 0x010
73688d5d7fc3 nginx-0.0.7-2004-07-06-20:12:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 307
diff changeset
27 #define NGX_LOG_DEBUG_ALLOC 0x020
73688d5d7fc3 nginx-0.0.7-2004-07-06-20:12:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 307
diff changeset
28 #define NGX_LOG_DEBUG_MUTEX 0x040
73688d5d7fc3 nginx-0.0.7-2004-07-06-20:12:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 307
diff changeset
29 #define NGX_LOG_DEBUG_EVENT 0x080
73688d5d7fc3 nginx-0.0.7-2004-07-06-20:12:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 307
diff changeset
30 #define NGX_LOG_DEBUG_HTTP 0x100
1136
68f30ab68bb7 Many changes:
Igor Sysoev <igor@sysoev.ru>
parents: 860
diff changeset
31 #define NGX_LOG_DEBUG_MAIL 0x200
6484
4b420f9c4c5d Removed the prototype mysql module.
Ruslan Ermilov <ru@nginx.com>
parents: 6186
diff changeset
32 #define NGX_LOG_DEBUG_STREAM 0x400
417
0526206251f6 nginx-0.0.10-2004-09-07-19:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 389
diff changeset
33
0526206251f6 nginx-0.0.10-2004-09-07-19:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 389
diff changeset
34 /*
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
35 * do not forget to update debug_levels[] in src/core/ngx_log.c
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
36 * after the adding a new debug level
417
0526206251f6 nginx-0.0.10-2004-09-07-19:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 389
diff changeset
37 */
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 201
diff changeset
38
307
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
39 #define NGX_LOG_DEBUG_FIRST NGX_LOG_DEBUG_CORE
6115
61d7ae76647d Stream: port from NGINX+.
Ruslan Ermilov <ru@nginx.com>
parents: 5962
diff changeset
40 #define NGX_LOG_DEBUG_LAST NGX_LOG_DEBUG_STREAM
307
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
41 #define NGX_LOG_DEBUG_CONNECTION 0x80000000
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
42 #define NGX_LOG_DEBUG_ALL 0x7ffffff0
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
43
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
44
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
45 typedef u_char *(*ngx_log_handler_pt) (ngx_log_t *log, u_char *buf, size_t len);
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
46 typedef void (*ngx_log_writer_pt) (ngx_log_t *log, ngx_uint_t level,
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
47 u_char *buf, size_t len);
160
e7e094d34162 nginx-0.0.1-2003-10-27-11:53:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 115
diff changeset
48
e7e094d34162 nginx-0.0.1-2003-10-27-11:53:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 115
diff changeset
49
9299
2706b60dc225 Core: error logging rate limiting.
Maxim Dounin <mdounin@mdounin.ru>
parents: 9296
diff changeset
50 typedef struct {
2706b60dc225 Core: error logging rate limiting.
Maxim Dounin <mdounin@mdounin.ru>
parents: 9296
diff changeset
51 ngx_uint_t rate;
2706b60dc225 Core: error logging rate limiting.
Maxim Dounin <mdounin@mdounin.ru>
parents: 9296
diff changeset
52 ngx_atomic_t excess;
2706b60dc225 Core: error logging rate limiting.
Maxim Dounin <mdounin@mdounin.ru>
parents: 9296
diff changeset
53 ngx_atomic_t last;
2706b60dc225 Core: error logging rate limiting.
Maxim Dounin <mdounin@mdounin.ru>
parents: 9296
diff changeset
54 } ngx_log_limit_t;
2706b60dc225 Core: error logging rate limiting.
Maxim Dounin <mdounin@mdounin.ru>
parents: 9296
diff changeset
55
2706b60dc225 Core: error logging rate limiting.
Maxim Dounin <mdounin@mdounin.ru>
parents: 9296
diff changeset
56
191
71ce40b3c37b nginx-0.0.1-2003-11-19-19:26:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
57 struct ngx_log_s {
257
70e1c7d2b83d nginx-0.0.2-2004-02-11-20:08:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 234
diff changeset
58 ngx_uint_t log_level;
160
e7e094d34162 nginx-0.0.1-2003-10-27-11:53:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 115
diff changeset
59 ngx_open_file_t *file;
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
60
495
fc9909c369b2 nginx-0.1.22-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
61 ngx_atomic_uint_t connection;
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
62
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
63 ngx_log_handler_pt handler;
160
e7e094d34162 nginx-0.0.1-2003-10-27-11:53:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 115
diff changeset
64 void *data;
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
65
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
66 ngx_log_writer_pt writer;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
67 void *wdata;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
68
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
69 /*
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
70 * we declare "action" as "char *" because the actions are usually
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
71 * the static strings and in the "u_char *" case we have to override
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
72 * their types all the time
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
73 */
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
74
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
75 char *action;
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 4412
diff changeset
76
9299
2706b60dc225 Core: error logging rate limiting.
Maxim Dounin <mdounin@mdounin.ru>
parents: 9296
diff changeset
77 ngx_log_limit_t *limit;
2706b60dc225 Core: error logging rate limiting.
Maxim Dounin <mdounin@mdounin.ru>
parents: 9296
diff changeset
78
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 4412
diff changeset
79 ngx_log_t *next;
191
71ce40b3c37b nginx-0.0.1-2003-11-19-19:26:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
80 };
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
81
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
82
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
83 #define NGX_MAX_ERROR_STR 2048
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
84
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
85
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
86 /*********************************/
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
87
3673
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
88 #if (NGX_HAVE_C99_VARIADIC_MACROS)
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
89
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
90 #define NGX_HAVE_VARIADIC_MACROS 1
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
91
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
92 #define ngx_log_error(level, log, ...) \
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
93 if ((log)->log_level >= level) ngx_log_error_core(level, log, __VA_ARGS__)
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
94
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
95 void ngx_log_error_core(ngx_uint_t level, ngx_log_t *log, ngx_err_t err,
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
96 const char *fmt, ...);
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
97
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
98 #define ngx_log_debug(level, log, ...) \
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
99 if ((log)->log_level & level) \
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
100 ngx_log_error_core(NGX_LOG_DEBUG, log, __VA_ARGS__)
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
101
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
102 /*********************************/
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
103
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
104 #elif (NGX_HAVE_GCC_VARIADIC_MACROS)
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
105
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
106 #define NGX_HAVE_VARIADIC_MACROS 1
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
107
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
108 #define ngx_log_error(level, log, args...) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
109 if ((log)->log_level >= level) ngx_log_error_core(level, log, args)
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
110
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 277
diff changeset
111 void ngx_log_error_core(ngx_uint_t level, ngx_log_t *log, ngx_err_t err,
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 495
diff changeset
112 const char *fmt, ...);
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
113
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
114 #define ngx_log_debug(level, log, args...) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
115 if ((log)->log_level & level) \
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
116 ngx_log_error_core(NGX_LOG_DEBUG, log, args)
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
117
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
118 /*********************************/
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
119
6161
e034af368274 Fixed bullying style of comments.
Ruslan Ermilov <ru@nginx.com>
parents: 6115
diff changeset
120 #else /* no variadic macros */
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
121
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
122 #define NGX_HAVE_VARIADIC_MACROS 0
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
123
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 499
diff changeset
124 void ngx_cdecl ngx_log_error(ngx_uint_t level, ngx_log_t *log, ngx_err_t err,
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 495
diff changeset
125 const char *fmt, ...);
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 277
diff changeset
126 void ngx_log_error_core(ngx_uint_t level, ngx_log_t *log, ngx_err_t err,
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 495
diff changeset
127 const char *fmt, va_list args);
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 499
diff changeset
128 void ngx_cdecl ngx_log_debug_core(ngx_log_t *log, ngx_err_t err,
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 499
diff changeset
129 const char *fmt, ...);
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
130
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
131
6161
e034af368274 Fixed bullying style of comments.
Ruslan Ermilov <ru@nginx.com>
parents: 6115
diff changeset
132 #endif /* variadic macros */
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
133
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
134
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
135 /*********************************/
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
136
277
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
137 #if (NGX_DEBUG)
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
138
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
139 #if (NGX_HAVE_VARIADIC_MACROS)
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
140
4397
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
141 #define ngx_log_debug0(level, log, err, fmt) \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
142 ngx_log_debug(level, log, err, fmt)
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
143
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
144 #define ngx_log_debug1(level, log, err, fmt, arg1) \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
145 ngx_log_debug(level, log, err, fmt, arg1)
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
146
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
147 #define ngx_log_debug2(level, log, err, fmt, arg1, arg2) \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
148 ngx_log_debug(level, log, err, fmt, arg1, arg2)
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
149
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
150 #define ngx_log_debug3(level, log, err, fmt, arg1, arg2, arg3) \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
151 ngx_log_debug(level, log, err, fmt, arg1, arg2, arg3)
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
152
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
153 #define ngx_log_debug4(level, log, err, fmt, arg1, arg2, arg3, arg4) \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
154 ngx_log_debug(level, log, err, fmt, arg1, arg2, arg3, arg4)
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
155
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
156 #define ngx_log_debug5(level, log, err, fmt, arg1, arg2, arg3, arg4, arg5) \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
157 ngx_log_debug(level, log, err, fmt, arg1, arg2, arg3, arg4, arg5)
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
158
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
159 #define ngx_log_debug6(level, log, err, fmt, \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
160 arg1, arg2, arg3, arg4, arg5, arg6) \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
161 ngx_log_debug(level, log, err, fmt, \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
162 arg1, arg2, arg3, arg4, arg5, arg6)
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
163
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
164 #define ngx_log_debug7(level, log, err, fmt, \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
165 arg1, arg2, arg3, arg4, arg5, arg6, arg7) \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
166 ngx_log_debug(level, log, err, fmt, \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
167 arg1, arg2, arg3, arg4, arg5, arg6, arg7)
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
168
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
169 #define ngx_log_debug8(level, log, err, fmt, \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
170 arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
171 ngx_log_debug(level, log, err, fmt, \
d3000365ac65 Changed ngx_log_debugN() macros to verify the number of arguments
Ruslan Ermilov <ru@nginx.com>
parents: 4283
diff changeset
172 arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)
389
537de4dca8ca nginx-0.0.7-2004-07-13-21:59:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 379
diff changeset
173
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
174
6161
e034af368274 Fixed bullying style of comments.
Ruslan Ermilov <ru@nginx.com>
parents: 6115
diff changeset
175 #else /* no variadic macros */
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
176
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
177 #define ngx_log_debug0(level, log, err, fmt) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
178 if ((log)->log_level & level) \
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
179 ngx_log_debug_core(log, err, fmt)
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
180
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
181 #define ngx_log_debug1(level, log, err, fmt, arg1) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
182 if ((log)->log_level & level) \
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
183 ngx_log_debug_core(log, err, fmt, arg1)
210
00cafae0bdf1 nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 208
diff changeset
184
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
185 #define ngx_log_debug2(level, log, err, fmt, arg1, arg2) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
186 if ((log)->log_level & level) \
210
00cafae0bdf1 nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 208
diff changeset
187 ngx_log_debug_core(log, err, fmt, arg1, arg2)
00cafae0bdf1 nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 208
diff changeset
188
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
189 #define ngx_log_debug3(level, log, err, fmt, arg1, arg2, arg3) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
190 if ((log)->log_level & level) \
213
f536f91e8e99 nginx-0.0.1-2003-12-19-15:45:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 210
diff changeset
191 ngx_log_debug_core(log, err, fmt, arg1, arg2, arg3)
f536f91e8e99 nginx-0.0.1-2003-12-19-15:45:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 210
diff changeset
192
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
193 #define ngx_log_debug4(level, log, err, fmt, arg1, arg2, arg3, arg4) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
194 if ((log)->log_level & level) \
214
e0c502f15852 nginx-0.0.1-2003-12-22-12:40:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 213
diff changeset
195 ngx_log_debug_core(log, err, fmt, arg1, arg2, arg3, arg4)
e0c502f15852 nginx-0.0.1-2003-12-22-12:40:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 213
diff changeset
196
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
197 #define ngx_log_debug5(level, log, err, fmt, arg1, arg2, arg3, arg4, arg5) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
198 if ((log)->log_level & level) \
214
e0c502f15852 nginx-0.0.1-2003-12-22-12:40:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 213
diff changeset
199 ngx_log_debug_core(log, err, fmt, arg1, arg2, arg3, arg4, arg5)
e0c502f15852 nginx-0.0.1-2003-12-22-12:40:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 213
diff changeset
200
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
201 #define ngx_log_debug6(level, log, err, fmt, \
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
202 arg1, arg2, arg3, arg4, arg5, arg6) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
203 if ((log)->log_level & level) \
210
00cafae0bdf1 nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 208
diff changeset
204 ngx_log_debug_core(log, err, fmt, arg1, arg2, arg3, arg4, arg5, arg6)
00cafae0bdf1 nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 208
diff changeset
205
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
206 #define ngx_log_debug7(level, log, err, fmt, \
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
207 arg1, arg2, arg3, arg4, arg5, arg6, arg7) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
208 if ((log)->log_level & level) \
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
209 ngx_log_debug_core(log, err, fmt, \
389
537de4dca8ca nginx-0.0.7-2004-07-13-21:59:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 379
diff changeset
210 arg1, arg2, arg3, arg4, arg5, arg6, arg7)
537de4dca8ca nginx-0.0.7-2004-07-13-21:59:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 379
diff changeset
211
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
212 #define ngx_log_debug8(level, log, err, fmt, \
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
213 arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
214 if ((log)->log_level & level) \
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
215 ngx_log_debug_core(log, err, fmt, \
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
216 arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
217
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
218 #endif
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
219
6161
e034af368274 Fixed bullying style of comments.
Ruslan Ermilov <ru@nginx.com>
parents: 6115
diff changeset
220 #else /* !NGX_DEBUG */
277
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
221
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
222 #define ngx_log_debug0(level, log, err, fmt)
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
223 #define ngx_log_debug1(level, log, err, fmt, arg1)
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
224 #define ngx_log_debug2(level, log, err, fmt, arg1, arg2)
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
225 #define ngx_log_debug3(level, log, err, fmt, arg1, arg2, arg3)
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
226 #define ngx_log_debug4(level, log, err, fmt, arg1, arg2, arg3, arg4)
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
227 #define ngx_log_debug5(level, log, err, fmt, arg1, arg2, arg3, arg4, arg5)
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
228 #define ngx_log_debug6(level, log, err, fmt, arg1, arg2, arg3, arg4, arg5, arg6)
426
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 417
diff changeset
229 #define ngx_log_debug7(level, log, err, fmt, arg1, arg2, arg3, arg4, arg5, \
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 417
diff changeset
230 arg6, arg7)
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
231 #define ngx_log_debug8(level, log, err, fmt, arg1, arg2, arg3, arg4, arg5, \
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
232 arg6, arg7, arg8)
277
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
233
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
234 #endif
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
235
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
236 /*********************************/
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
237
7744
f18db38a9826 Core: "-e" command line option.
Igor Ippolitov <iippolitov@nginx.com>
parents: 6484
diff changeset
238 ngx_log_t *ngx_log_init(u_char *prefix, u_char *error_log);
2752
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2749
diff changeset
239 void ngx_cdecl ngx_log_abort(ngx_err_t err, const char *fmt, ...);
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2722
diff changeset
240 void ngx_cdecl ngx_log_stderr(ngx_err_t err, const char *fmt, ...);
2765
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2758
diff changeset
241 u_char *ngx_log_errno(u_char *buf, u_char *last, ngx_err_t err);
5260
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
242 ngx_int_t ngx_log_open_default(ngx_cycle_t *cycle);
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
243 ngx_int_t ngx_log_redirect_stderr(ngx_cycle_t *cycle);
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
244 ngx_log_t *ngx_log_get_file_log(ngx_log_t *head);
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 4412
diff changeset
245 char *ngx_log_set_log(ngx_conf_t *cf, ngx_log_t **head);
234
cd71b95716b4 nginx-0.0.1-2004-01-20-23:40:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 218
diff changeset
246
109
a9bc21d63fe4 nginx-0.0.1-2003-07-02-18:41:17 import
Igor Sysoev <igor@sysoev.ru>
parents: 106
diff changeset
247
4283
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
248 /*
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
249 * ngx_write_stderr() cannot be implemented as macro, since
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
250 * MSVC does not allow to use #ifdef inside macro parameters.
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
251 *
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
252 * ngx_write_fd() is used instead of ngx_write_console(), since
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
253 * CharToOemBuff() inside ngx_write_console() cannot be used with
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
254 * read only buffer as destination and CharToOemBuff() is not needed
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
255 * for ngx_write_stderr() anyway.
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
256 */
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
257 static ngx_inline void
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
258 ngx_write_stderr(char *text)
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
259 {
5763
09e734739e46 Style: use ngx_strlen() instead of strlen().
Tatsuhiko Kubo <cubicdaiya@gmail.com>
parents: 5702
diff changeset
260 (void) ngx_write_fd(ngx_stderr, text, ngx_strlen(text));
4283
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
261 }
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
262
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
263
6186
db138b3b645e Core: added support for writing to stdout.
Vladimir Homutov <vl@nginx.com>
parents: 6161
diff changeset
264 static ngx_inline void
db138b3b645e Core: added support for writing to stdout.
Vladimir Homutov <vl@nginx.com>
parents: 6161
diff changeset
265 ngx_write_stdout(char *text)
db138b3b645e Core: added support for writing to stdout.
Vladimir Homutov <vl@nginx.com>
parents: 6161
diff changeset
266 {
db138b3b645e Core: added support for writing to stdout.
Vladimir Homutov <vl@nginx.com>
parents: 6161
diff changeset
267 (void) ngx_write_fd(ngx_stdout, text, ngx_strlen(text));
db138b3b645e Core: added support for writing to stdout.
Vladimir Homutov <vl@nginx.com>
parents: 6161
diff changeset
268 }
db138b3b645e Core: added support for writing to stdout.
Vladimir Homutov <vl@nginx.com>
parents: 6161
diff changeset
269
db138b3b645e Core: added support for writing to stdout.
Vladimir Homutov <vl@nginx.com>
parents: 6161
diff changeset
270
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
271 extern ngx_module_t ngx_errlog_module;
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2722
diff changeset
272 extern ngx_uint_t ngx_use_stderr;
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
273
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
274
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
275 #endif /* _NGX_LOG_H_INCLUDED_ */