comparison src/core/ngx_log.c @ 36:c14d7232b11f

nginx-0.0.1-2002-12-23-09:29:22 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 23 Dec 2002 06:29:22 +0000
parents a117a7fdf042
children a7e45c45a95c
comparison
equal deleted inserted replaced
35:79c1fce18e71 36:c14d7232b11f
11 */ 11 */
12 12
13 #include <ngx_config.h> 13 #include <ngx_config.h>
14 #include <ngx_errno.h> 14 #include <ngx_errno.h>
15 #include <ngx_time.h> 15 #include <ngx_time.h>
16 #include <ngx_process.h>
16 #include <ngx_string.h> 17 #include <ngx_string.h>
17 #include <ngx_log.h> 18 #include <ngx_log.h>
18 19
19 20
20 static const char *err_levels[] = { 21 static const char *err_levels[] = {
42 tm.ngx_tm_hour, tm.ngx_tm_min, tm.ngx_tm_sec); 43 tm.ngx_tm_hour, tm.ngx_tm_min, tm.ngx_tm_sec);
43 44
44 len += ngx_snprintf(errstr + len, sizeof(errstr) - len - 1, 45 len += ngx_snprintf(errstr + len, sizeof(errstr) - len - 1,
45 " [%s] ", err_levels[level]); 46 " [%s] ", err_levels[level]);
46 47
48 /* pid#tid */
47 len += ngx_snprintf(errstr + len, sizeof(errstr) - len - 1, 49 len += ngx_snprintf(errstr + len, sizeof(errstr) - len - 1,
48 #if (WIN32) 50 "%d#%d: ", ngx_getpid(), 0);
49 "%d#%d: ", 0, 0);
50 #else
51 "%d#%d: ", getpid(), 0);
52 #endif
53 51
54 #if (HAVE_VARIADIC_MACROS) 52 #if (HAVE_VARIADIC_MACROS)
55 va_start(args, fmt); 53 va_start(args, fmt);
56 len += ngx_vsnprintf(errstr + len, sizeof(errstr) - len - 1, fmt, args); 54 len += ngx_vsnprintf(errstr + len, sizeof(errstr) - len - 1, fmt, args);
57 va_end(args); 55 va_end(args);
58 #else 56 #else
59 len += ngx_vsnprintf(errstr + len, sizeof(errstr) - len - 1, fmt, args); 57 len += ngx_vsnprintf(errstr + len, sizeof(errstr) - len - 1, fmt, args);
60 #endif 58 #endif
61 59
62 if (err) { 60 if (err) {
63 if ((unsigned) err < 0x80000000) 61 #if (WIN32)
62 if ((unsigned) err >= 0x80000000)
64 len += ngx_snprintf(errstr + len, sizeof(errstr) - len - 1, 63 len += ngx_snprintf(errstr + len, sizeof(errstr) - len - 1,
65 " (%d: ", err); 64 " (%X: ", err);
66 else 65 else
66 #endif
67 len += ngx_snprintf(errstr + len, sizeof(errstr) - len - 1, 67 len += ngx_snprintf(errstr + len, sizeof(errstr) - len - 1,
68 " (%X: ", err); 68 " (%d: ", err);
69 69
70 len += ngx_strerror_r(err, errstr + len, sizeof(errstr) - len - 1); 70 len += ngx_strerror_r(err, errstr + len, sizeof(errstr) - len - 1);
71 if (len < sizeof(errstr) - 2) { 71 if (len < sizeof(errstr) - 2) {
72 errstr[len++] = ')'; 72 errstr[len++] = ')';
73 } else { 73 } else {
74 len = sizeof(errstr) - 2; 74 len = sizeof(errstr) - 2;
75 } 75 }
76 } 76 }
77 77
78 if (level != NGX_LOG_DEBUG && log->handler) 78 if (level != NGX_LOG_DEBUG && log->handler) {
79 len += log->handler(log->data, errstr + len, sizeof(errstr) - len - 1); 79 len += log->handler(log->data, errstr + len, sizeof(errstr) - len - 1);
80 }
80 81
81 if (len > sizeof(errstr) - 2) 82 if (len > sizeof(errstr) - 2) {
82 len = sizeof(errstr) - 2; 83 len = sizeof(errstr) - 2;
83 errstr[len] = '\n'; 84 }
84 errstr[len + 1] = '\0';
85 85
86 #if (WIN32)
87 errstr[len++] = '\r';
88 #endif
89 errstr[len++] = '\n';
90
91 write(2, errstr, len);
92
93 #if 0
94 errstr[len] = '\0';
86 fputs(errstr, stderr); 95 fputs(errstr, stderr);
87 fflush(stderr); 96 fflush(stderr);
97 #endif
88 } 98 }
89 99
90 #if !(HAVE_VARIADIC_MACROS) 100 #if !(HAVE_VARIADIC_MACROS)
91 101
92 void ngx_log_error(int level, ngx_log_t *log, ngx_err_t err, 102 void ngx_log_error(int level, ngx_log_t *log, ngx_err_t err,