Mercurial > hg > nginx-quic
comparison src/core/ngx_log.c @ 2765:6d358aeaa989
ngx_log_errno()
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 27 Apr 2009 13:17:33 +0000 |
parents | d4a717592877 |
children | 9d986c4e796f |
comparison
equal
deleted
inserted
replaced
2764:d4a717592877 | 2765:6d358aeaa989 |
---|---|
124 p = ngx_vslprintf(p, last, fmt, args); | 124 p = ngx_vslprintf(p, last, fmt, args); |
125 | 125 |
126 #endif | 126 #endif |
127 | 127 |
128 if (err) { | 128 if (err) { |
129 | 129 p = ngx_log_errno(p, last, err); |
130 if (p > last - 50) { | |
131 | |
132 /* leave a space for an error code */ | |
133 | |
134 p = last - 50; | |
135 *p++ = '.'; | |
136 *p++ = '.'; | |
137 *p++ = '.'; | |
138 } | |
139 | |
140 #if (NGX_WIN32) | |
141 p = ngx_slprintf(p, last, ((unsigned) err < 0x80000000) | |
142 ? " (%d: " : " (%Xd: ", err); | |
143 #else | |
144 p = ngx_slprintf(p, last, " (%d: ", err); | |
145 #endif | |
146 | |
147 p = ngx_strerror_r(err, p, last - p); | |
148 | |
149 if (p < last) { | |
150 *p++ = ')'; | |
151 } | |
152 } | 130 } |
153 | 131 |
154 if (level != NGX_LOG_DEBUG && log->handler) { | 132 if (level != NGX_LOG_DEBUG && log->handler) { |
155 p = log->handler(log, p, last - p); | 133 p = log->handler(log, p, last - p); |
156 } | 134 } |
234 | 212 |
235 va_start(args, fmt); | 213 va_start(args, fmt); |
236 p = ngx_vslprintf(errstr, last, fmt, args); | 214 p = ngx_vslprintf(errstr, last, fmt, args); |
237 va_end(args); | 215 va_end(args); |
238 | 216 |
239 if (p > errstr + NGX_MAX_ERROR_STR - NGX_LINEFEED_SIZE) { | |
240 p = errstr + NGX_MAX_ERROR_STR - NGX_LINEFEED_SIZE; | |
241 } | |
242 | |
243 if (err) { | 217 if (err) { |
244 | 218 p = ngx_log_errno(p, last, err); |
245 if (p > last - 50) { | 219 } |
246 | 220 |
247 /* leave a space for an error code */ | 221 if (p > last - NGX_LINEFEED_SIZE) { |
248 | 222 p = last - NGX_LINEFEED_SIZE; |
249 p = last - 50; | 223 } |
250 *p++ = '.'; | 224 |
251 *p++ = '.'; | 225 ngx_linefeed(p); |
252 *p++ = '.'; | 226 |
253 } | 227 (void) ngx_write_fd(ngx_stderr, errstr, p - errstr); |
228 } | |
229 | |
230 | |
231 u_char * | |
232 ngx_log_errno(u_char *buf, u_char *last, ngx_err_t err) | |
233 { | |
234 if (buf > last - 50) { | |
235 | |
236 /* leave a space for an error code */ | |
237 | |
238 buf = last - 50; | |
239 *buf++ = '.'; | |
240 *buf++ = '.'; | |
241 *buf++ = '.'; | |
242 } | |
254 | 243 |
255 #if (NGX_WIN32) | 244 #if (NGX_WIN32) |
256 p = ngx_slprintf(p, last, ((unsigned) err < 0x80000000) | 245 buf = ngx_slprintf(buf, last, ((unsigned) err < 0x80000000) |
257 ? " (%d: " : " (%Xd: ", err); | 246 ? " (%d: " : " (%Xd: ", err); |
258 #else | 247 #else |
259 p = ngx_slprintf(p, last, " (%d: ", err); | 248 buf = ngx_slprintf(buf, last, " (%d: ", err); |
260 #endif | 249 #endif |
261 | 250 |
262 p = ngx_strerror_r(err, p, last - p); | 251 buf = ngx_strerror_r(err, buf, last - buf); |
263 | 252 |
264 if (p < last) { | 253 if (buf < last) { |
265 *p++ = ')'; | 254 *buf++ = ')'; |
266 } | 255 } |
267 } | 256 |
268 | 257 return buf; |
269 ngx_linefeed(p); | |
270 | |
271 (void) ngx_write_fd(ngx_stderr, errstr, p - errstr); | |
272 } | 258 } |
273 | 259 |
274 | 260 |
275 ngx_log_t * | 261 ngx_log_t * |
276 ngx_log_init(u_char *prefix) | 262 ngx_log_init(u_char *prefix) |