annotate src/core/ngx_log.c @ 5980:ccad84a174e0

Refactored sendfile() AIO preload. This reduces layering violation and simplifies the logic of AIO preread, since it's now triggered by the send chain function itself without falling back to the copy filter. The context of AIO operation is now stored per file buffer, which makes it possible to properly handle cases when multiple buffers come from different locations, each with its own configuration.
author Valentin Bartenev <vbart@nginx.com>
date Wed, 11 Feb 2015 17:52:15 +0300
parents 727177743c3c
children 93fee708f168
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: 440
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: 440
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: 443
diff changeset
3 * Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 4012
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: 440
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: 440
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
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #include <ngx_config.h>
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 83
diff changeset
9 #include <ngx_core.h>
0
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
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2773
diff changeset
12 static char *ngx_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
13 static char *ngx_log_set_levels(ngx_conf_t *cf, ngx_log_t *log);
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
14 static void ngx_log_insert(ngx_log_t *log, ngx_log_t *new_log);
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
15
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
16
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
17 static ngx_command_t ngx_errlog_commands[] = {
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
18
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
19 {ngx_string("error_log"),
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
20 NGX_MAIN_CONF|NGX_CONF_1MORE,
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2773
diff changeset
21 ngx_error_log,
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
22 0,
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
23 0,
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
24 NULL},
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
25
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
26 ngx_null_command
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
27 };
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
28
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
29
311
11ff50a35d6d nginx-0.0.3-2004-04-12-20:38:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
30 static ngx_core_module_t ngx_errlog_module_ctx = {
11ff50a35d6d nginx-0.0.3-2004-04-12-20:38:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
31 ngx_string("errlog"),
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 571
diff changeset
32 NULL,
311
11ff50a35d6d nginx-0.0.3-2004-04-12-20:38:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
33 NULL
11ff50a35d6d nginx-0.0.3-2004-04-12-20:38:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
34 };
11ff50a35d6d nginx-0.0.3-2004-04-12-20:38:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
35
11ff50a35d6d nginx-0.0.3-2004-04-12-20:38:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
36
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
37 ngx_module_t ngx_errlog_module = {
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
38 NGX_MODULE_V1,
311
11ff50a35d6d nginx-0.0.3-2004-04-12-20:38:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
39 &ngx_errlog_module_ctx, /* module context */
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
40 ngx_errlog_commands, /* module directives */
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
41 NGX_CORE_MODULE, /* module type */
541
b09ee85d0ac8 nginx-0.1.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
42 NULL, /* init master */
116
571bcbff82c5 nginx-0.0.1-2003-07-11-08:50:59 import
Igor Sysoev <igor@sysoev.ru>
parents: 115
diff changeset
43 NULL, /* init module */
541
b09ee85d0ac8 nginx-0.1.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
44 NULL, /* init process */
b09ee85d0ac8 nginx-0.1.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
45 NULL, /* init thread */
b09ee85d0ac8 nginx-0.1.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
46 NULL, /* exit thread */
b09ee85d0ac8 nginx-0.1.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
47 NULL, /* exit process */
b09ee85d0ac8 nginx-0.1.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
48 NULL, /* exit master */
b09ee85d0ac8 nginx-0.1.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
49 NGX_MODULE_V1_PADDING
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
50 };
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
51
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
52
415
3c56e834be46 nginx-0.0.10-2004-09-05-23:54:02 import
Igor Sysoev <igor@sysoev.ru>
parents: 379
diff changeset
53 static ngx_log_t ngx_log;
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
54 static ngx_open_file_t ngx_log_file;
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
55 ngx_uint_t ngx_use_stderr = 1;
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
56
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
57
2741
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
58 static ngx_str_t err_levels[] = {
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2773
diff changeset
59 ngx_null_string,
2741
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
60 ngx_string("emerg"),
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
61 ngx_string("alert"),
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
62 ngx_string("crit"),
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
63 ngx_string("error"),
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
64 ngx_string("warn"),
2742
e138f820b5dc style fix: remove trailing spaces introduced in the previous commit
Igor Sysoev <igor@sysoev.ru>
parents: 2741
diff changeset
65 ngx_string("notice"),
e138f820b5dc style fix: remove trailing spaces introduced in the previous commit
Igor Sysoev <igor@sysoev.ru>
parents: 2741
diff changeset
66 ngx_string("info"),
2741
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
67 ngx_string("debug")
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
68 };
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
69
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
70 static const char *debug_levels[] = {
417
0526206251f6 nginx-0.0.10-2004-09-07-19:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 415
diff changeset
71 "debug_core", "debug_alloc", "debug_mutex", "debug_event",
1136
68f30ab68bb7 Many changes:
Igor Sysoev <igor@sysoev.ru>
parents: 1048
diff changeset
72 "debug_http", "debug_mail", "debug_mysql"
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
73 };
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
74
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
75
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
76 #if (NGX_HAVE_VARIADIC_MACROS)
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
77
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
78 void
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
79 ngx_log_error_core(ngx_uint_t level, ngx_log_t *log, ngx_err_t err,
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
80 const char *fmt, ...)
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
81
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
82 #else
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
83
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
84 void
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
85 ngx_log_error_core(ngx_uint_t level, ngx_log_t *log, ngx_err_t err,
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
86 const char *fmt, va_list args)
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
87
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
88 #endif
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
89 {
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
90 #if (NGX_HAVE_VARIADIC_MACROS)
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
91 va_list args;
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
92 #endif
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
93 u_char *p, *last, *msg;
5962
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
94 ssize_t n;
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
95 ngx_uint_t wrote_stderr, debug_connection;
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
96 u_char errstr[NGX_MAX_ERROR_STR];
119
cd54bcbaf3b5 nginx-0.0.1-2003-07-21-01:15:59 import
Igor Sysoev <igor@sysoev.ru>
parents: 116
diff changeset
97
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
98 last = errstr + NGX_MAX_ERROR_STR;
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
99
182
3c49eaf3f522 nginx-0.0.1-2003-11-13-09:14:05 import
Igor Sysoev <igor@sysoev.ru>
parents: 123
diff changeset
100 ngx_memcpy(errstr, ngx_cached_err_log_time.data,
3c49eaf3f522 nginx-0.0.1-2003-11-13-09:14:05 import
Igor Sysoev <igor@sysoev.ru>
parents: 123
diff changeset
101 ngx_cached_err_log_time.len);
3c49eaf3f522 nginx-0.0.1-2003-11-13-09:14:05 import
Igor Sysoev <igor@sysoev.ru>
parents: 123
diff changeset
102
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
103 p = errstr + ngx_cached_err_log_time.len;
236
86e473b5641e nginx-0.0.1-2004-01-22-09:47:28 import
Igor Sysoev <igor@sysoev.ru>
parents: 235
diff changeset
104
2764
d4a717592877 use ngx_vslprintf(), ngx_slprintf()
Igor Sysoev <igor@sysoev.ru>
parents: 2758
diff changeset
105 p = ngx_slprintf(p, last, " [%V] ", &err_levels[level]);
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
106
36
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 28
diff changeset
107 /* pid#tid */
2764
d4a717592877 use ngx_vslprintf(), ngx_slprintf()
Igor Sysoev <igor@sysoev.ru>
parents: 2758
diff changeset
108 p = ngx_slprintf(p, last, "%P#" NGX_TID_T_FMT ": ",
933
1ce231663322 ngx_sprintf() has implicit limit of 65536 bytes so on Linux/ppc64
Igor Sysoev <igor@sysoev.ru>
parents: 860
diff changeset
109 ngx_log_pid, ngx_log_tid);
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
110
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
111 if (log->connection) {
2764
d4a717592877 use ngx_vslprintf(), ngx_slprintf()
Igor Sysoev <igor@sysoev.ru>
parents: 2758
diff changeset
112 p = ngx_slprintf(p, last, "*%uA ", log->connection);
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
113 }
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
114
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
115 msg = p;
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
116
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
117 #if (NGX_HAVE_VARIADIC_MACROS)
191
71ce40b3c37b nginx-0.0.1-2003-11-19-19:26:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
118
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
119 va_start(args, fmt);
2764
d4a717592877 use ngx_vslprintf(), ngx_slprintf()
Igor Sysoev <igor@sysoev.ru>
parents: 2758
diff changeset
120 p = ngx_vslprintf(p, last, fmt, args);
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
121 va_end(args);
191
71ce40b3c37b nginx-0.0.1-2003-11-19-19:26:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
122
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
123 #else
191
71ce40b3c37b nginx-0.0.1-2003-11-19-19:26:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
124
2764
d4a717592877 use ngx_vslprintf(), ngx_slprintf()
Igor Sysoev <igor@sysoev.ru>
parents: 2758
diff changeset
125 p = ngx_vslprintf(p, last, fmt, args);
191
71ce40b3c37b nginx-0.0.1-2003-11-19-19:26:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
126
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
127 #endif
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
128
6
669801705ab1 nginx-0.0.1-2002-08-26-19:18:19 import
Igor Sysoev <igor@sysoev.ru>
parents: 1
diff changeset
129 if (err) {
2765
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
130 p = ngx_log_errno(p, last, err);
6
669801705ab1 nginx-0.0.1-2002-08-26-19:18:19 import
Igor Sysoev <igor@sysoev.ru>
parents: 1
diff changeset
131 }
669801705ab1 nginx-0.0.1-2002-08-26-19:18:19 import
Igor Sysoev <igor@sysoev.ru>
parents: 1
diff changeset
132
36
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 28
diff changeset
133 if (level != NGX_LOG_DEBUG && log->handler) {
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
134 p = log->handler(log, p, last - p);
36
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 28
diff changeset
135 }
6
669801705ab1 nginx-0.0.1-2002-08-26-19:18:19 import
Igor Sysoev <igor@sysoev.ru>
parents: 1
diff changeset
136
571
458b6c3fea65 nginx-0.3.7-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 541
diff changeset
137 if (p > last - NGX_LINEFEED_SIZE) {
458b6c3fea65 nginx-0.3.7-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 541
diff changeset
138 p = last - NGX_LINEFEED_SIZE;
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
139 }
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
140
571
458b6c3fea65 nginx-0.3.7-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 541
diff changeset
141 ngx_linefeed(p);
467
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
142
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
143 wrote_stderr = 0;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
144 debug_connection = (log->log_level & NGX_LOG_DEBUG_CONNECTION) != 0;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
145
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
146 while (log) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
147
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
148 if (log->log_level < level && !debug_connection) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
149 break;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
150 }
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
151
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
152 if (log->writer) {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
153 log->writer(log, level, errstr, p - errstr);
5962
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
154 goto next;
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
155 }
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
156
5962
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
157 if (ngx_time() == log->disk_full_time) {
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
158
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
159 /*
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
160 * on FreeBSD writing to a full filesystem with enabled softupdates
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
161 * may block process for much longer time than writing to non-full
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
162 * filesystem, so we skip writing to a log for one second
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
163 */
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
164
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
165 goto next;
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
166 }
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
167
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
168 n = ngx_write_fd(log->file->fd, errstr, p - errstr);
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
169
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
170 if (n == -1 && ngx_errno == NGX_ENOSPC) {
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
171 log->disk_full_time = ngx_time();
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
172 }
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
173
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
174 if (log->file->fd == ngx_stderr) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
175 wrote_stderr = 1;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
176 }
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
177
5962
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
178 next:
727177743c3c Core: added disk_full_time checks to error log.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5771
diff changeset
179
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
180 log = log->next;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
181 }
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
182
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
183 if (!ngx_use_stderr
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
184 || level > NGX_LOG_WARN
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
185 || wrote_stderr)
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
186 {
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
187 return;
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
188 }
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
189
3822
75ffcfc700f3 remove semicolon, because it is already in "nginx: " prefix
Igor Sysoev <igor@sysoev.ru>
parents: 3799
diff changeset
190 msg -= (7 + err_levels[level].len + 3);
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
191
3822
75ffcfc700f3 remove semicolon, because it is already in "nginx: " prefix
Igor Sysoev <igor@sysoev.ru>
parents: 3799
diff changeset
192 (void) ngx_sprintf(msg, "nginx: [%V] ", &err_levels[level]);
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
193
2769
9d986c4e796f introduce ngx_write_console() to support OEM code pages
Igor Sysoev <igor@sysoev.ru>
parents: 2765
diff changeset
194 (void) ngx_write_console(ngx_stderr, msg, p - msg);
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
195 }
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
196
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 83
diff changeset
197
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
198 #if !(NGX_HAVE_VARIADIC_MACROS)
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
199
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
200 void ngx_cdecl
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
201 ngx_log_error(ngx_uint_t level, ngx_log_t *log, ngx_err_t err,
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
202 const char *fmt, ...)
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
203 {
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
204 va_list args;
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
205
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
206 if (log->log_level >= level) {
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
207 va_start(args, fmt);
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
208 ngx_log_error_core(level, log, err, fmt, args);
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
209 va_end(args);
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
210 }
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
211 }
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
212
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 83
diff changeset
213
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
214 void ngx_cdecl
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
215 ngx_log_debug_core(ngx_log_t *log, ngx_err_t err, const char *fmt, ...)
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
216 {
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
217 va_list args;
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
218
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
219 va_start(args, fmt);
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
220 ngx_log_error_core(NGX_LOG_DEBUG, log, err, fmt, args);
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
221 va_end(args);
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
222 }
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
223
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
224 #endif
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 83
diff changeset
225
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 83
diff changeset
226
2752
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
227 void ngx_cdecl
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
228 ngx_log_abort(ngx_err_t err, const char *fmt, ...)
860
201d017ea470 slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents: 639
diff changeset
229 {
2752
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
230 u_char *p;
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
231 va_list args;
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
232 u_char errstr[NGX_MAX_CONF_ERRSTR];
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
233
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
234 va_start(args, fmt);
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
235 p = ngx_vsnprintf(errstr, sizeof(errstr) - 1, fmt, args);
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
236 va_end(args);
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
237
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
238 ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, err,
2d82d3cfbfa0 change ngx_log_abort() interface
Igor Sysoev <igor@sysoev.ru>
parents: 2750
diff changeset
239 "%*s", p - errstr, errstr);
860
201d017ea470 slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents: 639
diff changeset
240 }
201d017ea470 slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents: 639
diff changeset
241
201d017ea470 slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents: 639
diff changeset
242
2722
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
243 void ngx_cdecl
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
244 ngx_log_stderr(ngx_err_t err, const char *fmt, ...)
2722
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
245 {
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
246 u_char *p, *last;
2722
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
247 va_list args;
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
248 u_char errstr[NGX_MAX_ERROR_STR];
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
249
2764
d4a717592877 use ngx_vslprintf(), ngx_slprintf()
Igor Sysoev <igor@sysoev.ru>
parents: 2758
diff changeset
250 last = errstr + NGX_MAX_ERROR_STR;
3799
188007bf58c3 add "nginx: " prefix when logging to the stderr
Igor Sysoev <igor@sysoev.ru>
parents: 3787
diff changeset
251 p = errstr + 7;
188007bf58c3 add "nginx: " prefix when logging to the stderr
Igor Sysoev <igor@sysoev.ru>
parents: 3787
diff changeset
252
188007bf58c3 add "nginx: " prefix when logging to the stderr
Igor Sysoev <igor@sysoev.ru>
parents: 3787
diff changeset
253 ngx_memcpy(errstr, "nginx: ", 7);
2764
d4a717592877 use ngx_vslprintf(), ngx_slprintf()
Igor Sysoev <igor@sysoev.ru>
parents: 2758
diff changeset
254
2722
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
255 va_start(args, fmt);
3799
188007bf58c3 add "nginx: " prefix when logging to the stderr
Igor Sysoev <igor@sysoev.ru>
parents: 3787
diff changeset
256 p = ngx_vslprintf(p, last, fmt, args);
2722
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
257 va_end(args);
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
258
2765
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
259 if (err) {
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
260 p = ngx_log_errno(p, last, err);
2722
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
261 }
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
262
2765
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
263 if (p > last - NGX_LINEFEED_SIZE) {
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
264 p = last - NGX_LINEFEED_SIZE;
2732
e1b3d210587a fix r2731 for Win32
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
265 }
e1b3d210587a fix r2731 for Win32
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
266
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
267 ngx_linefeed(p);
2732
e1b3d210587a fix r2731 for Win32
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
268
2769
9d986c4e796f introduce ngx_write_console() to support OEM code pages
Igor Sysoev <igor@sysoev.ru>
parents: 2765
diff changeset
269 (void) ngx_write_console(ngx_stderr, errstr, p - errstr);
2722
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
270 }
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
271
ffa8e2451457 show -t results on stderr
Igor Sysoev <igor@sysoev.ru>
parents: 2718
diff changeset
272
2765
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
273 u_char *
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
274 ngx_log_errno(u_char *buf, u_char *last, ngx_err_t err)
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
275 {
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
276 if (buf > last - 50) {
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
277
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
278 /* leave a space for an error code */
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
279
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
280 buf = last - 50;
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
281 *buf++ = '.';
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
282 *buf++ = '.';
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
283 *buf++ = '.';
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
284 }
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
285
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
286 #if (NGX_WIN32)
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
287 buf = ngx_slprintf(buf, last, ((unsigned) err < 0x80000000)
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
288 ? " (%d: " : " (%Xd: ", err);
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
289 #else
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
290 buf = ngx_slprintf(buf, last, " (%d: ", err);
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
291 #endif
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
292
3787
e294f37401c0 use copied strerror() messages and autoconfigured sys_nerr value
Igor Sysoev <igor@sysoev.ru>
parents: 3516
diff changeset
293 buf = ngx_strerror(err, buf, last - buf);
2765
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
294
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
295 if (buf < last) {
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
296 *buf++ = ')';
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
297 }
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
298
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
299 return buf;
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
300 }
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
301
6d358aeaa989 ngx_log_errno()
Igor Sysoev <igor@sysoev.ru>
parents: 2764
diff changeset
302
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
303 ngx_log_t *
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
304 ngx_log_init(u_char *prefix)
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
305 {
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
306 u_char *p, *name;
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
307 size_t nlen, plen;
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
308
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
309 ngx_log.file = &ngx_log_file;
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
310 ngx_log.log_level = NGX_LOG_NOTICE;
105
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
311
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
312 name = (u_char *) NGX_ERROR_LOG_PATH;
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
313
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
314 /*
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
315 * we use ngx_strlen() here since BCC warns about
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
316 * condition is always false and unreachable code
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
317 */
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
318
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
319 nlen = ngx_strlen(name);
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
320
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
321 if (nlen == 0) {
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
322 ngx_log_file.fd = ngx_stderr;
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
323 return &ngx_log;
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
324 }
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
325
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
326 p = NULL;
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
327
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
328 #if (NGX_WIN32)
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
329 if (name[1] != ':') {
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
330 #else
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
331 if (name[0] != '/') {
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
332 #endif
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
333
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
334 if (prefix) {
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
335 plen = ngx_strlen(prefix);
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
336
2773
7a44b1932741 fix building by BCC if NGX_PREFIX is defined
Igor Sysoev <igor@sysoev.ru>
parents: 2769
diff changeset
337 } else {
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
338 #ifdef NGX_PREFIX
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
339 prefix = (u_char *) NGX_PREFIX;
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
340 plen = ngx_strlen(prefix);
2773
7a44b1932741 fix building by BCC if NGX_PREFIX is defined
Igor Sysoev <igor@sysoev.ru>
parents: 2769
diff changeset
341 #else
7a44b1932741 fix building by BCC if NGX_PREFIX is defined
Igor Sysoev <igor@sysoev.ru>
parents: 2769
diff changeset
342 plen = 0;
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
343 #endif
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
344 }
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
345
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
346 if (plen) {
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
347 name = malloc(plen + nlen + 2);
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
348 if (name == NULL) {
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
349 return NULL;
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
350 }
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
351
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
352 p = ngx_cpymem(name, prefix, plen);
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
353
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
354 if (!ngx_path_separator(*(p - 1))) {
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
355 *p++ = '/';
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
356 }
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
357
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
358 ngx_cpystrn(p, (u_char *) NGX_ERROR_LOG_PATH, nlen + 1);
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
359
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
360 p = name;
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
361 }
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
362 }
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
363
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
364 ngx_log_file.fd = ngx_open_file(name, NGX_FILE_APPEND,
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
365 NGX_FILE_CREATE_OR_OPEN,
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
366 NGX_FILE_DEFAULT_ACCESS);
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
367
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
368 if (ngx_log_file.fd == NGX_INVALID_FILE) {
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
369 ngx_log_stderr(ngx_errno,
3871
8ccd6ed1d4bb remove semicolon, because it is already in "nginx: " prefix
Igor Sysoev <igor@sysoev.ru>
parents: 3822
diff changeset
370 "[alert] could not open error log file: "
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
371 ngx_open_file_n " \"%s\" failed", name);
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
372 #if (NGX_WIN32)
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
373 ngx_event_log(ngx_errno,
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
374 "could not open error log file: "
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
375 ngx_open_file_n " \"%s\" failed", name);
2743
d8316f307b6a issue start up errors and warning on both stderr and error_log
Igor Sysoev <igor@sysoev.ru>
parents: 2742
diff changeset
376 #endif
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
377
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
378 ngx_log_file.fd = ngx_stderr;
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
379 }
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
380
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
381 if (p) {
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2752
diff changeset
382 ngx_free(p);
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
383 }
207
6e0fef527732 nginx-0.0.1-2003-12-05-20:07:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 201
diff changeset
384
448
241dc8092a33 nginx-0.1.0-2004-10-01-19:53:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 445
diff changeset
385 return &ngx_log;
241dc8092a33 nginx-0.1.0-2004-10-01-19:53:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 445
diff changeset
386 }
241dc8092a33 nginx-0.1.0-2004-10-01-19:53:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 445
diff changeset
387
241dc8092a33 nginx-0.1.0-2004-10-01-19:53:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 445
diff changeset
388
5260
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
389 ngx_int_t
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
390 ngx_log_open_default(ngx_cycle_t *cycle)
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
391 {
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
392 ngx_log_t *log;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
393 static ngx_str_t error_log = ngx_string(NGX_ERROR_LOG_PATH);
5260
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
394
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
395 if (ngx_log_get_file_log(&cycle->new_log) != NULL) {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
396 return NGX_OK;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
397 }
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
398
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
399 if (cycle->new_log.log_level != 0) {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
400 /* there are some error logs, but no files */
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
401
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
402 log = ngx_pcalloc(cycle->pool, sizeof(ngx_log_t));
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
403 if (log == NULL) {
5260
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
404 return NGX_ERROR;
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
405 }
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
406
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
407 } else {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
408 /* no error logs at all */
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
409 log = &cycle->new_log;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
410 }
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
411
5771
c3b08217f2a2 Core: fixed default log initialization.
Vladimir Homutov <vl@nginx.com>
parents: 5702
diff changeset
412 log->log_level = NGX_LOG_ERR;
c3b08217f2a2 Core: fixed default log initialization.
Vladimir Homutov <vl@nginx.com>
parents: 5702
diff changeset
413
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
414 log->file = ngx_conf_open_file(cycle, &error_log);
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
415 if (log->file == NULL) {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
416 return NGX_ERROR;
5260
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
417 }
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
418
5771
c3b08217f2a2 Core: fixed default log initialization.
Vladimir Homutov <vl@nginx.com>
parents: 5702
diff changeset
419 if (log != &cycle->new_log) {
c3b08217f2a2 Core: fixed default log initialization.
Vladimir Homutov <vl@nginx.com>
parents: 5702
diff changeset
420 ngx_log_insert(&cycle->new_log, log);
c3b08217f2a2 Core: fixed default log initialization.
Vladimir Homutov <vl@nginx.com>
parents: 5702
diff changeset
421 }
c3b08217f2a2 Core: fixed default log initialization.
Vladimir Homutov <vl@nginx.com>
parents: 5702
diff changeset
422
5260
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
423 return NGX_OK;
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
424 }
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
425
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
426
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
427 ngx_int_t
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
428 ngx_log_redirect_stderr(ngx_cycle_t *cycle)
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
429 {
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
430 ngx_fd_t fd;
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
431
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
432 if (cycle->log_use_stderr) {
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
433 return NGX_OK;
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
434 }
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
435
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
436 /* file log always exists when we are called */
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
437 fd = ngx_log_get_file_log(cycle->log)->file->fd;
5260
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
438
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
439 if (fd != ngx_stderr) {
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
440 if (ngx_set_stderr(fd) == NGX_FILE_ERROR) {
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
441 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
442 ngx_set_stderr_n " failed");
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
443
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
444 return NGX_ERROR;
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
445 }
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
446 }
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
447
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
448 return NGX_OK;
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
449 }
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
450
e088695737c3 Core: consolidated log-related code.
Vladimir Homutov <vl@nginx.com>
parents: 5254
diff changeset
451
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
452 ngx_log_t *
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
453 ngx_log_get_file_log(ngx_log_t *head)
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
454 {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
455 ngx_log_t *log;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
456
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
457 for (log = head; log; log = log->next) {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
458 if (log->file != NULL) {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
459 return log;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
460 }
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
461 }
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
462
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
463 return NULL;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
464 }
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
465
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
466
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
467 static char *
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2773
diff changeset
468 ngx_log_set_levels(ngx_conf_t *cf, ngx_log_t *log)
234
cd71b95716b4 nginx-0.0.1-2004-01-20-23:40:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 232
diff changeset
469 {
4012
bf452af6c1d2 Complain on invalid log levels.
Maxim Dounin <mdounin@mdounin.ru>
parents: 3871
diff changeset
470 ngx_uint_t i, n, d, found;
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
471 ngx_str_t *value;
234
cd71b95716b4 nginx-0.0.1-2004-01-20-23:40:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 232
diff changeset
472
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
473 if (cf->args->nelts == 2) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
474 log->log_level = NGX_LOG_ERR;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
475 return NGX_CONF_OK;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
476 }
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
477
234
cd71b95716b4 nginx-0.0.1-2004-01-20-23:40:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 232
diff changeset
478 value = cf->args->elts;
cd71b95716b4 nginx-0.0.1-2004-01-20-23:40:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 232
diff changeset
479
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
480 for (i = 2; i < cf->args->nelts; i++) {
4012
bf452af6c1d2 Complain on invalid log levels.
Maxim Dounin <mdounin@mdounin.ru>
parents: 3871
diff changeset
481 found = 0;
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
482
257
70e1c7d2b83d nginx-0.0.2-2004-02-11-20:08:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 249
diff changeset
483 for (n = 1; n <= NGX_LOG_DEBUG; n++) {
2741
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
484 if (ngx_strcmp(value[i].data, err_levels[n].data) == 0) {
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
485
234
cd71b95716b4 nginx-0.0.1-2004-01-20-23:40:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 232
diff changeset
486 if (log->log_level != 0) {
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
487 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
2741
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
488 "duplicate log level \"%V\"",
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
489 &value[i]);
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
490 return NGX_CONF_ERROR;
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
491 }
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
492
234
cd71b95716b4 nginx-0.0.1-2004-01-20-23:40:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 232
diff changeset
493 log->log_level = n;
4012
bf452af6c1d2 Complain on invalid log levels.
Maxim Dounin <mdounin@mdounin.ru>
parents: 3871
diff changeset
494 found = 1;
bf452af6c1d2 Complain on invalid log levels.
Maxim Dounin <mdounin@mdounin.ru>
parents: 3871
diff changeset
495 break;
207
6e0fef527732 nginx-0.0.1-2003-12-05-20:07:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 201
diff changeset
496 }
6e0fef527732 nginx-0.0.1-2003-12-05-20:07:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 201
diff changeset
497 }
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
498
236
86e473b5641e nginx-0.0.1-2004-01-22-09:47:28 import
Igor Sysoev <igor@sysoev.ru>
parents: 235
diff changeset
499 for (n = 0, d = NGX_LOG_DEBUG_FIRST; d <= NGX_LOG_DEBUG_LAST; d <<= 1) {
86e473b5641e nginx-0.0.1-2004-01-22-09:47:28 import
Igor Sysoev <igor@sysoev.ru>
parents: 235
diff changeset
500 if (ngx_strcmp(value[i].data, debug_levels[n++]) == 0) {
234
cd71b95716b4 nginx-0.0.1-2004-01-20-23:40:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 232
diff changeset
501 if (log->log_level & ~NGX_LOG_DEBUG_ALL) {
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
502 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
2741
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
503 "invalid log level \"%V\"",
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
504 &value[i]);
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
505 return NGX_CONF_ERROR;
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
506 }
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
507
234
cd71b95716b4 nginx-0.0.1-2004-01-20-23:40:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 232
diff changeset
508 log->log_level |= d;
4012
bf452af6c1d2 Complain on invalid log levels.
Maxim Dounin <mdounin@mdounin.ru>
parents: 3871
diff changeset
509 found = 1;
bf452af6c1d2 Complain on invalid log levels.
Maxim Dounin <mdounin@mdounin.ru>
parents: 3871
diff changeset
510 break;
208
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
511 }
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
512 }
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
513
0b67be7d4489 nginx-0.0.1-2003-12-08-23:48:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 207
diff changeset
514
4012
bf452af6c1d2 Complain on invalid log levels.
Maxim Dounin <mdounin@mdounin.ru>
parents: 3871
diff changeset
515 if (!found) {
207
6e0fef527732 nginx-0.0.1-2003-12-05-20:07:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 201
diff changeset
516 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
2741
cda3738a85bd use ngx_str_t for error levels
Igor Sysoev <igor@sysoev.ru>
parents: 2737
diff changeset
517 "invalid log level \"%V\"", &value[i]);
207
6e0fef527732 nginx-0.0.1-2003-12-05-20:07:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 201
diff changeset
518 return NGX_CONF_ERROR;
6e0fef527732 nginx-0.0.1-2003-12-05-20:07:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 201
diff changeset
519 }
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
520 }
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
521
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2773
diff changeset
522 if (log->log_level == NGX_LOG_DEBUG) {
257
70e1c7d2b83d nginx-0.0.2-2004-02-11-20:08:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 249
diff changeset
523 log->log_level = NGX_LOG_DEBUG_ALL;
70e1c7d2b83d nginx-0.0.2-2004-02-11-20:08:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 249
diff changeset
524 }
70e1c7d2b83d nginx-0.0.2-2004-02-11-20:08:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 249
diff changeset
525
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
526 return NGX_CONF_OK;
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
527 }
317
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
528
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
529
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
530 static char *
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2773
diff changeset
531 ngx_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
317
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
532 {
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
533 ngx_log_t *dummy;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
534
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
535 dummy = &cf->cycle->new_log;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
536
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
537 return ngx_log_set_log(cf, &dummy);
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
538 }
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
539
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
540
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
541 char *
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
542 ngx_log_set_log(ngx_conf_t *cf, ngx_log_t **head)
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
543 {
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
544 ngx_log_t *new_log;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
545 ngx_str_t *value, name;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
546 ngx_syslog_peer_t *peer;
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2773
diff changeset
547
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
548 if (*head != NULL && (*head)->log_level == 0) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
549 new_log = *head;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
550
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
551 } else {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
552
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
553 new_log = ngx_pcalloc(cf->pool, sizeof(ngx_log_t));
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
554 if (new_log == NULL) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
555 return NGX_CONF_ERROR;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
556 }
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
557
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
558 if (*head == NULL) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
559 *head = new_log;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
560 }
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2773
diff changeset
561 }
317
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
562
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
563 value = cf->args->elts;
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
564
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2773
diff changeset
565 if (ngx_strcmp(value[1].data, "stderr") == 0) {
3516
dd1570b6f237 ngx_str_set() and ngx_str_null()
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
566 ngx_str_null(&name);
5240
d8af1005e886 Core: fixed handling of "stderr" in error_log.
Vladimir Homutov <vl@nginx.com>
parents: 4412
diff changeset
567 cf->cycle->log_use_stderr = 1;
317
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
568
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
569 new_log->file = ngx_conf_open_file(cf->cycle, &name);
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
570 if (new_log->file == NULL) {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
571 return NGX_CONF_ERROR;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
572 }
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
573
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
574
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
575 } else if (ngx_strncmp(value[1].data, "syslog:", 7) == 0) {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
576 peer = ngx_pcalloc(cf->pool, sizeof(ngx_syslog_peer_t));
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
577 if (peer == NULL) {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
578 return NGX_CONF_ERROR;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
579 }
445
f26432a1935a nginx-0.1.0-2004-09-30-10:38:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
580
5702
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
581 if (ngx_syslog_process_conf(cf, peer) != NGX_CONF_OK) {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
582 return NGX_CONF_ERROR;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
583 }
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
584
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
585 new_log->writer = ngx_syslog_writer;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
586 new_log->wdata = peer;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
587
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
588 } else {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
589 new_log->file = ngx_conf_open_file(cf->cycle, &value[1]);
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
590 if (new_log->file == NULL) {
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
591 return NGX_CONF_ERROR;
777202558122 Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents: 5260
diff changeset
592 }
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
593 }
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
594
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
595 if (ngx_log_set_levels(cf, new_log) != NGX_CONF_OK) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
596 return NGX_CONF_ERROR;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
597 }
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
598
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
599 if (*head != new_log) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
600 ngx_log_insert(*head, new_log);
317
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
601 }
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
602
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
603 return NGX_CONF_OK;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
604 }
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
605
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
606
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
607 static void
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
608 ngx_log_insert(ngx_log_t *log, ngx_log_t *new_log)
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
609 {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
610 ngx_log_t tmp;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
611
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
612 if (new_log->log_level > log->log_level) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
613
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
614 /*
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
615 * list head address is permanent, insert new log after
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
616 * head and swap its contents with head
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
617 */
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
618
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
619 tmp = *log;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
620 *log = *new_log;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
621 *new_log = tmp;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
622
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
623 log->next = new_log;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
624 return;
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2773
diff changeset
625 }
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2773
diff changeset
626
5254
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
627 while (log->next) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
628 if (new_log->log_level > log->next->log_level) {
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
629 new_log->next = log->next;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
630 log->next = new_log;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
631 return;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
632 }
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
633
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
634 log = log->next;
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
635 }
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
636
7ecaa9e4bf1b Core: support several "error_log" directives.
Vladimir Homutov <vl@nginx.com>
parents: 5250
diff changeset
637 log->next = new_log;
317
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
638 }