From: Damjan Marion Date: Mon, 8 Sep 2025 21:53:27 +0000 (+0200) Subject: vlib: add va_list version of vlib_log() X-Git-Tag: v26.02-rc0~44 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F75%2F43675%2F1;p=vpp.git vlib: add va_list version of vlib_log() Type: improvement Change-Id: I94693563aef5dad4fb8a9cb59be63a4cabf8d147 Signed-off-by: Damjan Marion --- diff --git a/src/vlib/log.c b/src/vlib/log.c index be6b759c61a..ff24ad15ba7 100644 --- a/src/vlib/log.c +++ b/src/vlib/log.c @@ -120,13 +120,13 @@ log_size_validate (vlib_log_main_t *lm) } void -vlib_log (vlib_log_level_t level, vlib_log_class_t class, char *fmt, ...) +vlib_log_va (vlib_log_level_t level, vlib_log_class_t class, char *fmt, + va_list *va) { vlib_main_t *vm = vlib_get_main (); vlib_log_main_t *lm = &log_main; vlib_log_entry_t *e; vlib_log_subclass_data_t *sc = vlib_log_get_subclass_data (class); - va_list va; f64 t = vlib_time_now (vm); f64 delta = t - sc->last_event_timestamp; int log_enabled = log_level_is_enabled (level, sc->level); @@ -160,9 +160,7 @@ vlib_log (vlib_log_level_t level, vlib_log_class_t class, char *fmt, ...) if (s == 0) { - va_start (va, fmt); - s = va_format (s, fmt, &va); - va_end (va); + s = va_format (s, fmt, va); } if (syslog_enabled) @@ -253,6 +251,15 @@ vlib_log (vlib_log_level_t level, vlib_log_class_t class, char *fmt, ...) vec_free (s); } +void +vlib_log (vlib_log_level_t level, vlib_log_class_t class, char *fmt, ...) +{ + va_list va; + va_start (va, fmt); + vlib_log_va (level, class, fmt, &va); + va_end (va); +} + static vlib_log_class_t vlib_log_register_class_internal (char *class, char *subclass, u32 limit) { diff --git a/src/vlib/log.h b/src/vlib/log.h index 5bacd7f45cb..712a63aa872 100644 --- a/src/vlib/log.h +++ b/src/vlib/log.h @@ -126,6 +126,8 @@ vlib_log_register_class_rate_limit (char *class, char *subclass, u32 rate_limit); void vlib_log (vlib_log_level_t level, vlib_log_class_t class, char *fmt, ...); +void vlib_log_va (vlib_log_level_t level, vlib_log_class_t class, char *fmt, + va_list *va); int last_log_entry (); u8 *format_vlib_log_class (u8 * s, va_list * args); u8 *format_vlib_log_level (u8 * s, va_list * args);