--- 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;