Mercurial > hg > nginx
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, |