diff options
-rw-r--r-- | src/log.c | 27 | ||||
-rw-r--r-- | src/log.h | 9 |
2 files changed, 29 insertions, 7 deletions
@@ -582,26 +582,22 @@ int log_dump_internal( return r; } -int log_meta( +int log_metav( int level, const char*file, int line, const char *func, - const char *format, ...) { + const char *format, + va_list ap) { char buffer[LINE_MAX]; int saved_errno, r; - va_list ap; if (_likely_(LOG_PRI(level) > log_max_level)) return 0; saved_errno = errno; - - va_start(ap, format); vsnprintf(buffer, sizeof(buffer), format, ap); - va_end(ap); - char_array_0(buffer); r = log_dispatch(level, file, line, func, buffer); @@ -610,6 +606,23 @@ int log_meta( return r; } +int log_meta( + int level, + const char*file, + int line, + const char *func, + const char *format, ...) { + + int r; + va_list ap; + + va_start(ap, format); + r = log_metav(level, file, line, func, format, ap); + va_end(ap); + + return r; +} + #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" _noreturn_ static void log_assert(const char *text, const char *file, int line, const char *func, const char *format) { @@ -24,6 +24,7 @@ #include <syslog.h> #include <stdbool.h> +#include <stdarg.h> #include "macro.h" @@ -73,6 +74,14 @@ int log_meta( const char *func, const char *format, ...) _printf_attr_(5,6); +int log_metav( + int level, + const char*file, + int line, + const char *func, + const char *format, + va_list ap); + _noreturn_ void log_assert_failed(const char *text, const char *file, int line, const char *func); _noreturn_ void log_assert_failed_unreachable(const char *text, const char *file, int line, const char *func); |