203 |
203 |
204 /* |
204 /* |
205 * log api functions |
205 * log api functions |
206 */ |
206 */ |
207 |
207 |
208 int log_ereport(int degree, const char *format, ...) { |
208 int log_ereport(int degree, const char *format, ...) { |
|
209 va_list args; |
|
210 va_start(args, format); |
|
211 int ret = log_ereport_v(degree, format, args); |
|
212 va_end(args); |
|
213 return ret; |
|
214 } |
|
215 |
|
216 int log_ereport_v(int degree, const char *format, va_list args) { |
209 if(degree > 6) { |
217 if(degree > 6) { |
210 return 0; |
218 return 0; |
211 } |
219 } |
212 if(degree > 0 && !can_log[degree]) { |
220 if(degree > 0 && !can_log[degree]) { |
213 return 0; |
221 return 0; |
214 } |
222 } |
215 |
223 |
216 sstr_t lmsg; |
224 sstr_t lmsg; |
217 lmsg.ptr = NULL; |
225 lmsg.ptr = NULL; |
218 va_list ap; |
|
219 va_start(ap, format); |
|
220 |
226 |
221 /* create log message prefix */ |
227 /* create log message prefix */ |
222 sstr_t lpre = log_get_prefix(degree); |
228 sstr_t lpre = log_get_prefix(degree); |
223 |
229 |
224 /* format message */ |
230 /* format message */ |
225 int len = vasprintf(&lmsg.ptr, format, ap); |
231 int len = vasprintf(&lmsg.ptr, format, args); |
226 lmsg.length = len; |
232 lmsg.length = len; |
227 |
233 |
228 /* create message string */ |
234 /* create message string */ |
229 sstr_t message; |
235 sstr_t message; |
230 message.length = lpre.length + len; |
236 message.length = lpre.length + len; |
239 free(lmsg.ptr); |
245 free(lmsg.ptr); |
240 free(lpre.ptr); |
246 free(lpre.ptr); |
241 free(message.ptr); |
247 free(message.ptr); |
242 |
248 |
243 return 0; |
249 return 0; |
|
250 } |
|
251 |
|
252 int log_error(int degree, const char *func, Session *sn, Request *rq, |
|
253 const char *format, ...) |
|
254 { |
|
255 va_list args; |
|
256 va_start(args, format); |
|
257 int ret = log_error_v(degree, func, sn, rq, format, args); |
|
258 va_end(args); |
|
259 return ret; |
|
260 } |
|
261 |
|
262 int log_error_v(int degree, const char *func, Session *sn, Request *rq, |
|
263 const char *format, va_list args) |
|
264 { |
|
265 // TODO: implement |
|
266 return log_ereport(degree, format, args); |
244 } |
267 } |
245 |
268 |
246 |
269 |
247 /* |
270 /* |
248 * access log |
271 * access log |