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 }