annotate src/core/ngx_log.h @ 4309:3f6040cd731e

Added shmtx interface to forcibly unlock mutexes. It is currently used from master process on abnormal worker termination to unlock accept mutex (unlocking of accept mutex was broken in 1.0.2). It is expected to be used in the future to unlock other mutexes as well. Shared mutex code was rewritten to make this possible in a safe way, i.e. with a check if lock was actually held by the exited process. We again use pid to lock mutex, and use separate atomic variable for a count of processes waiting in sem_wait().
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 23 Nov 2011 13:55:38 +0000
parents f72496073689
children d3000365ac65
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
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
4 */
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
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7 #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
8 #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
9
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
11 #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
12 #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
13
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14
307
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
15 #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
16 #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
17 #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
18 #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
19 #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
20 #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
21 #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
22 #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
23 #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
24
379
73688d5d7fc3 nginx-0.0.7-2004-07-06-20:12:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 307
diff changeset
25 #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
26 #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
27 #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
28 #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
29 #define NGX_LOG_DEBUG_HTTP 0x100
1136
68f30ab68bb7 Many changes:
Igor Sysoev <igor@sysoev.ru>
parents: 860
diff changeset
30 #define NGX_LOG_DEBUG_MAIL 0x200
645
4946078f0a79 nginx-0.3.44-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
31 #define NGX_LOG_DEBUG_MYSQL 0x400
417
0526206251f6 nginx-0.0.10-2004-09-07-19:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 389
diff changeset
32
0526206251f6 nginx-0.0.10-2004-09-07-19:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 389
diff changeset
33 /*
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
34 * 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
35 * 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
36 */
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 201
diff changeset
37
307
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
38 #define NGX_LOG_DEBUG_FIRST NGX_LOG_DEBUG_CORE
1136
68f30ab68bb7 Many changes:
Igor Sysoev <igor@sysoev.ru>
parents: 860
diff changeset
39 #define NGX_LOG_DEBUG_LAST NGX_LOG_DEBUG_MYSQL
307
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
40 #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
41 #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
42
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
43
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
44 typedef u_char *(*ngx_log_handler_pt) (ngx_log_t *log, 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
45
e7e094d34162 nginx-0.0.1-2003-10-27-11:53:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 115
diff changeset
46
191
71ce40b3c37b nginx-0.0.1-2003-11-19-19:26:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
47 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
48 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
49 ngx_open_file_t *file;
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
50
495
fc9909c369b2 nginx-0.1.22-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
51 ngx_atomic_uint_t connection;
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
52
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
53 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
54 void *data;
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
55
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
56 /*
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
57 * 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
58 * 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
59 * their types all the time
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
60 */
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
61
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
62 char *action;
191
71ce40b3c37b nginx-0.0.1-2003-11-19-19:26:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
63 };
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
64
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
65
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
66 #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
67
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
68
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
69 /*********************************/
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
70
3673
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
71 #if (NGX_HAVE_C99_VARIADIC_MACROS)
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
72
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
73 #define NGX_HAVE_VARIADIC_MACROS 1
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
74
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
75 #define ngx_log_error(level, log, ...) \
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
76 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
77
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
78 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
79 const char *fmt, ...);
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
80
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
81 #define ngx_log_debug(level, log, ...) \
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
82 if ((log)->log_level & level) \
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
83 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
84
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
85 /*********************************/
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
86
e27070fb6c6b try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
87 #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
88
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
89 #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
90
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
91 #define ngx_log_error(level, log, args...) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
92 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
93
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 277
diff changeset
94 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
95 const char *fmt, ...);
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
96
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
97 #define ngx_log_debug(level, log, args...) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
98 if ((log)->log_level & level) \
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
99 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
100
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
101 /*********************************/
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
102
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
103 #else /* NO VARIADIC MACROS */
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
104
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
105 #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
106
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 499
diff changeset
107 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
108 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
109 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
110 const char *fmt, va_list args);
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 499
diff changeset
111 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
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
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
114
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
115 #endif /* VARIADIC MACROS */
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
116
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
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 /*********************************/
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
119
277
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
120 #if (NGX_DEBUG)
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
121
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
122 #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
123
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
124 #define ngx_log_debug0 ngx_log_debug
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
125 #define ngx_log_debug1 ngx_log_debug
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
126 #define ngx_log_debug2 ngx_log_debug
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
127 #define ngx_log_debug3 ngx_log_debug
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
128 #define ngx_log_debug4 ngx_log_debug
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
129 #define ngx_log_debug5 ngx_log_debug
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
130 #define ngx_log_debug6 ngx_log_debug
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
131 #define ngx_log_debug7 ngx_log_debug
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
132 #define ngx_log_debug8 ngx_log_debug
389
537de4dca8ca nginx-0.0.7-2004-07-13-21:59:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 379
diff changeset
133
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
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 #else /* NO VARIADIC MACROS */
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
136
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
137 #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
138 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
139 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
140
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
141 #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
142 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
143 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
144
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
145 #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
146 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
147 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
148
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
149 #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
150 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
151 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
152
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
153 #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
154 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
155 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
156
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
157 #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
158 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
159 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
160
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
161 #define ngx_log_debug6(level, log, err, fmt, \
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
162 arg1, arg2, arg3, arg4, arg5, arg6) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
163 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
164 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
165
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
166 #define ngx_log_debug7(level, log, err, fmt, \
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
167 arg1, arg2, arg3, arg4, arg5, arg6, arg7) \
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
168 if ((log)->log_level & level) \
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
169 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
170 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
171
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
172 #define ngx_log_debug8(level, log, err, fmt, \
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
173 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
174 if ((log)->log_level & level) \
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
175 ngx_log_debug_core(log, err, fmt, \
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
176 arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
177
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
178 #endif
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
179
277
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
180 #else /* NO NGX_DEBUG */
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
181
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
182 #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
183 #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
184 #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
185 #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
186 #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
187 #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
188 #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
189 #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
190 arg6, arg7)
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
191 #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
192 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
193
e91499541410 nginx-0.0.2-2004-03-03-19:14:15 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
194 #endif
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
195
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
196 /*********************************/
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 191
diff changeset
197
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
198 ngx_log_t *ngx_log_init(u_char *prefix);
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2765
diff changeset
199 ngx_log_t *ngx_log_create(ngx_cycle_t *cycle, ngx_str_t *name);
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2765
diff changeset
200 char *ngx_log_set_levels(ngx_conf_t *cf, ngx_log_t *log);
2752
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2749
diff changeset
201 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
202 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
203 u_char *ngx_log_errno(u_char *buf, u_char *last, ngx_err_t err);
234
cd71b95716b4 nginx-0.0.1-2004-01-20-23:40:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 218
diff changeset
204
109
a9bc21d63fe4 nginx-0.0.1-2003-07-02-18:41:17 import
Igor Sysoev <igor@sysoev.ru>
parents: 106
diff changeset
205
4283
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
206 /*
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
207 * 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
208 * 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
209 *
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
210 * 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
211 * 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
212 * 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
213 * 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
214 */
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
215 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
216 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
217 {
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
218 (void) ngx_write_fd(ngx_stderr, text, strlen(text));
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
219 }
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
220
f72496073689 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
Igor Sysoev <igor@sysoev.ru>
parents: 3673
diff changeset
221
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
222 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
223 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
224
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
225
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
226 #endif /* _NGX_LOG_H_INCLUDED_ */