comparison src/core/ngx_log.c @ 208:0b67be7d4489

nginx-0.0.1-2003-12-08-23:48:12 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 08 Dec 2003 20:48:12 +0000
parents 6e0fef527732
children e1c815be05ae
comparison
equal deleted inserted replaced
207:6e0fef527732 208:0b67be7d4489
20 static ngx_str_t errlog_name = ngx_string("errlog"); 20 static ngx_str_t errlog_name = ngx_string("errlog");
21 21
22 static ngx_command_t ngx_errlog_commands[] = { 22 static ngx_command_t ngx_errlog_commands[] = {
23 23
24 {ngx_string("error_log"), 24 {ngx_string("error_log"),
25 NGX_MAIN_CONF|NGX_CONF_TAKE12, 25 NGX_MAIN_CONF|NGX_CONF_1MORE,
26 ngx_set_error_log, 26 ngx_set_error_log,
27 0, 27 0,
28 0, 28 0,
29 NULL}, 29 NULL},
30 30
49 static const char *err_levels[] = { 49 static const char *err_levels[] = {
50 "stderr", "emerg", "alert", "crit", "error", 50 "stderr", "emerg", "alert", "crit", "error",
51 "warn", "notice", "info", "debug" 51 "warn", "notice", "info", "debug"
52 }; 52 };
53 53
54 static const char *debug_levels[] = {
55 "debug", "debug_alloc", "debug_event", "debug_http"
56 };
57
58
54 #if (HAVE_VARIADIC_MACROS) 59 #if (HAVE_VARIADIC_MACROS)
55 void ngx_log_error_core(int level, ngx_log_t *log, ngx_err_t err, 60 void ngx_log_error_core(int level, ngx_log_t *log, ngx_err_t err,
56 const char *fmt, ...) 61 const char *fmt, ...)
57 #else 62 #else
58 void ngx_log_error_core(int level, ngx_log_t *log, ngx_err_t err, 63 void ngx_log_error_core(int level, ngx_log_t *log, ngx_err_t err,
260 265
261 return &ngx_log; 266 return &ngx_log;
262 } 267 }
263 268
264 269
265 ngx_log_t *ngx_log_create_errlog(ngx_cycle_t *cycle, ngx_str_t *name) 270 ngx_log_t *ngx_log_create_errlog(ngx_cycle_t *cycle, ngx_array_t *args)
266 { 271 {
267 ngx_log_t *log; 272 ngx_log_t *log;
273 ngx_str_t *value, *name;
274
275 if (args) {
276 value = args->elts;
277 name = &value[1];
278
279 } else {
280 name = NULL;
281 }
268 282
269 ngx_test_null(log, ngx_pcalloc(cycle->pool, sizeof(ngx_log_t)), NULL); 283 ngx_test_null(log, ngx_pcalloc(cycle->pool, sizeof(ngx_log_t)), NULL);
270 ngx_test_null(log->file, ngx_conf_open_file(cycle, name), NULL); 284 ngx_test_null(log->file, ngx_conf_open_file(cycle, name), NULL);
271 285
272 #if 0 286 #if 0
277 } 291 }
278 292
279 293
280 static char *ngx_set_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) 294 static char *ngx_set_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
281 { 295 {
282 ngx_int_t i; 296 ngx_int_t i, n, d;
283 ngx_str_t *value; 297 ngx_str_t *value;
284 298
285 value = cf->args->elts; 299 value = cf->args->elts;
286 300
287 if (value[1].len == 6 && ngx_strcmp(value[1].data, "stderr") == 0) { 301 if (value[1].len == 6 && ngx_strcmp(value[1].data, "stderr") == 0) {
289 303
290 } else { 304 } else {
291 cf->cycle->log->file->name = value[1]; 305 cf->cycle->log->file->name = value[1];
292 } 306 }
293 307
294 if (cf->args->nelts == 3) { 308 for (i = 2; i < cf->args->nelts; i++) {
295 for (i = 1; i <= /* STUB ??? */ NGX_LOG_DEBUG; i++) { 309
296 if (ngx_strcmp(value[2].data, err_levels[i]) == 0) { 310 for (n = 1; n < NGX_LOG_DEBUG; n++) {
297 cf->cycle->log->log_level = i; 311 if (ngx_strcmp(value[i].data, err_levels[n]) == 0) {
298 break; 312
313 if (cf->cycle->log->log_level != 0) {
314 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
315 "invalid log level \"%s\"",
316 value[i].data);
317 return NGX_CONF_ERROR;
318 }
319
320 cf->cycle->log->log_level = n;
321 continue;
299 } 322 }
300 } 323 }
301 if (i > NGX_LOG_DEBUG) { 324
325 d = NGX_LOG_DEBUG_FIRST;
326 for (n = 0; n < /* STUB */ 3; n++) {
327 if (ngx_strcmp(value[i].data, debug_levels[n]) == 0) {
328 if (cf->cycle->log->log_level & ~NGX_LOG_DEBUG_ALL) {
329 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
330 "invalid log level \"%s\"",
331 value[i].data);
332 return NGX_CONF_ERROR;
333 }
334
335 cf->cycle->log->log_level |= d;
336 d <<= 1;
337 continue;
338 }
339 }
340
341
342 if (cf->cycle->log->log_level == 0) {
302 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, 343 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
303 "invalid log level \"%s\"", value[2].data); 344 "invalid log level \"%s\"", value[i].data);
304 return NGX_CONF_ERROR; 345 return NGX_CONF_ERROR;
305 } 346 }
306 } 347 }
307 348
308 return NGX_CONF_OK; 349 return NGX_CONF_OK;