src/log.c
branchnew-lib-errors
changeset 216 a10ba529ae39
parent 209 d240da5dbeb5
--- a/src/log.c	Sat May 23 00:33:23 2009 +0300
+++ b/src/log.c	Wed May 27 23:07:00 2009 +0300
@@ -72,7 +72,7 @@
     _log_output_ctx.arg = arg;
 }
 
-void log_output_tag (enum log_level level, const char *tag, const char *func, const char *user_fmt, va_list user_fmtargs, const char *log_fmt, ...)
+void log_output_tag_va (enum log_level level, const char *tag, const char *func, const char *user_fmt, va_list user_fmtargs, const char *log_fmt, va_list log_fmtargs)
 {
     char buf[LOG_MSG_MAX], *buf_ptr = buf;
     size_t buf_size = sizeof(buf);
@@ -89,16 +89,21 @@
         buf_ptr += str_advance(NULL, &buf_size, str_append_fmt_va(buf_ptr, buf_size, user_fmt, user_fmtargs));
     
     // output the suffix
-    if (log_fmt) {
-        va_list vargs;
-
-        va_start(vargs, log_fmt);
-        buf_ptr += str_advance(NULL, &buf_size, str_append_fmt_va(buf_ptr, buf_size, log_fmt, vargs));
-        va_end(vargs);
-    }
+    if (log_fmt)
+        buf_ptr += str_advance(NULL, &buf_size, str_append_fmt_va(buf_ptr, buf_size, log_fmt, log_fmtargs));
 
     // send it to the output func
     _log_output_ctx.func(buf, _log_output_ctx.arg);
+
+}
+
+void log_output_tag (enum log_level level, const char *tag, const char *func, const char *user_fmt, va_list user_fmtargs, const char *log_fmt, ...)
+{
+    va_list vargs;
+
+    va_start(vargs, log_fmt);
+    log_output_tag_va(level, tag, func, user_fmt, user_fmtargs, log_fmt, vargs);
+    va_end(vargs);
 }
 
 void _log_msg (enum log_level level, const char *func, const char *format, ...)
@@ -111,6 +116,11 @@
     va_end(vargs);
 }
 
+void _log_msg_va2 (enum log_level level, const char *func, const char *fmt1, va_list fmtargs1, const char *fmt2, va_list fmtargs2)
+{
+    log_output_tag_va(level, log_level_name(level), func, fmt1, fmtargs1, fmt2, fmtargs2);
+}
+
 void _log_err (enum log_level level, err_t err, const char *func, const char *format, ...)
 {
     va_list vargs;