Mercurial > hg > nginx
comparison src/core/ngx_log.c @ 444:42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 29 Sep 2004 16:00:49 +0000 |
parents | 33aec431094b |
children | f26432a1935a |
comparison
equal
deleted
inserted
replaced
443:33aec431094b | 444:42d11f017717 |
---|---|
1 | 1 |
2 /* | 2 /* |
3 * Copyright (C) 2002-2004 Igor Sysoev | 3 * Copyright (C) Igor Sysoev |
4 */ | 4 */ |
5 | 5 |
6 | 6 |
7 #include <ngx_config.h> | 7 #include <ngx_config.h> |
8 #include <ngx_core.h> | 8 #include <ngx_core.h> |
110 #endif | 110 #endif |
111 | 111 |
112 if (err) { | 112 if (err) { |
113 | 113 |
114 if (len > max - 50) { | 114 if (len > max - 50) { |
115 | |
115 /* leave a space for an error code */ | 116 /* leave a space for an error code */ |
117 | |
116 len = max - 50; | 118 len = max - 50; |
117 errstr[len++] = '.'; | 119 errstr[len++] = '.'; |
118 errstr[len++] = '.'; | 120 errstr[len++] = '.'; |
119 errstr[len++] = '.'; | 121 errstr[len++] = '.'; |
120 } | 122 } |
220 } | 222 } |
221 | 223 |
222 #endif | 224 #endif |
223 | 225 |
224 | 226 |
225 #if 0 | |
226 | |
227 void ngx_log_stderr(ngx_event_t *ev) | |
228 { | |
229 char errstr[MAX_ERROR_STR]; | |
230 ssize_t n; | |
231 ngx_err_t err; | |
232 | |
233 for ( ;; ) { | |
234 n = read((ngx_fd_t) ev->data, errstr, sizeof(errstr - 1)); | |
235 | |
236 if (n == -1) { | |
237 err = ngx_errno; | |
238 if (err == NGX_EAGAIN) { | |
239 return; | |
240 } | |
241 | |
242 ngx_log_error(NGX_LOG_ALERT, &ngx_log, err, "read() failed"); | |
243 return; | |
244 } | |
245 | |
246 if (n == 0) { | |
247 ngx_log_error(NGX_LOG_ALERT, &ngx_log, 0, "stderr clolsed"); | |
248 return; | |
249 } | |
250 | |
251 errstr[n] = '\0'; | |
252 ngx_log_error(NGX_LOG_STDERR, &ngx_log, 0, "%s", errstr); | |
253 } | |
254 } | |
255 | |
256 #endif | |
257 | |
258 | |
259 | 227 |
260 ngx_log_t *ngx_log_init_errlog() | 228 ngx_log_t *ngx_log_init_errlog() |
261 { | 229 { |
262 ngx_fd_t fd; | 230 ngx_fd_t fd; |
263 | 231 |
285 #endif | 253 #endif |
286 | 254 |
287 ngx_log.file = &ngx_stderr; | 255 ngx_log.file = &ngx_stderr; |
288 ngx_log.log_level = NGX_LOG_ERR; | 256 ngx_log.log_level = NGX_LOG_ERR; |
289 | 257 |
290 #if 0 | 258 #ifdef NGX_ERROR_LOG_PATH |
259 | |
291 fd = ngx_open_file(NGX_ERROR_LOG_PATH, NGX_FILE_RDWR, | 260 fd = ngx_open_file(NGX_ERROR_LOG_PATH, NGX_FILE_RDWR, |
292 NGX_FILE_CREATE_OR_OPEN|NGX_FILE_APPEND); | 261 NGX_FILE_CREATE_OR_OPEN|NGX_FILE_APPEND); |
293 | 262 |
294 if (fd == NGX_INVALID_FILE) { | 263 if (fd == NGX_INVALID_FILE) { |
295 ngx_log_error(NGX_LOG_EMERG, (&ngx_log), ngx_errno, | 264 ngx_log_error(NGX_LOG_EMERG, (&ngx_log), ngx_errno, |
313 "dup2(STDERR) failed"); | 282 "dup2(STDERR) failed"); |
314 return NULL; | 283 return NULL; |
315 } | 284 } |
316 | 285 |
317 #endif | 286 #endif |
287 | |
318 #endif | 288 #endif |
319 | 289 |
320 return &ngx_log; | 290 return &ngx_log; |
321 } | 291 } |
322 | 292 |
403 { | 373 { |
404 ngx_str_t *value; | 374 ngx_str_t *value; |
405 | 375 |
406 value = cf->args->elts; | 376 value = cf->args->elts; |
407 | 377 |
408 if (value[1].len == 6 && ngx_strcmp(value[1].data, "stderr") == 0) { | 378 cf->cycle->new_log->file->name = value[1]; |
409 cf->cycle->new_log->file->fd = ngx_stderr.fd; | 379 |
410 cf->cycle->new_log->file->name.len = 0; | 380 if (ngx_conf_full_name(cf->cycle, &cf->cycle->new_log->file->name) |
411 cf->cycle->new_log->file->name.data = NULL; | |
412 | |
413 } else { | |
414 cf->cycle->new_log->file->name = value[1]; | |
415 | |
416 if (ngx_conf_full_name(cf->cycle, &cf->cycle->new_log->file->name) | |
417 == NGX_ERROR) | 381 == NGX_ERROR) |
418 { | 382 { |
419 return NGX_CONF_ERROR; | 383 return NGX_CONF_ERROR; |
420 } | |
421 } | 384 } |
422 | 385 |
423 return ngx_set_error_log_levels(cf, cf->cycle->new_log); | 386 return ngx_set_error_log_levels(cf, cf->cycle->new_log); |
424 } | 387 } |