From 17a949114db25546973989bbdcc0c71f0a5e3503 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 14 Mar 2012 14:54:41 +0100 Subject: [PATCH] log: introduce log_metav --- src/log.c | 39 ++++++++++++++++++++++++++------------- src/log.h | 9 +++++++++ 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/log.c b/src/log.c index e1f511cca6..949936762a 100644 --- a/src/log.c +++ b/src/log.c @@ -582,6 +582,30 @@ int log_dump_internal( return r; } +int log_metav( + int level, + const char*file, + int line, + const char *func, + const char *format, + va_list ap) { + + char buffer[LINE_MAX]; + int saved_errno, r; + + if (_likely_(LOG_PRI(level) > log_max_level)) + return 0; + + saved_errno = errno; + vsnprintf(buffer, sizeof(buffer), format, ap); + char_array_0(buffer); + + r = log_dispatch(level, file, line, func, buffer); + errno = saved_errno; + + return r; +} + int log_meta( int level, const char*file, @@ -589,24 +613,13 @@ int log_meta( const char *func, const char *format, ...) { - char buffer[LINE_MAX]; - int saved_errno, r; + int 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); + r = log_metav(level, file, line, func, format, ap); va_end(ap); - char_array_0(buffer); - - r = log_dispatch(level, file, line, func, buffer); - errno = saved_errno; - return r; } diff --git a/src/log.h b/src/log.h index 7028a13275..cf9f7fa569 100644 --- a/src/log.h +++ b/src/log.h @@ -24,6 +24,7 @@ #include #include +#include #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);