vlib: add va_list version of vlib_log() 75/43675/1
authorDamjan Marion <[email protected]>
Mon, 8 Sep 2025 21:53:27 +0000 (23:53 +0200)
committerDamjan Marion <[email protected]>
Mon, 8 Sep 2025 21:54:17 +0000 (23:54 +0200)
Type: improvement
Change-Id: I94693563aef5dad4fb8a9cb59be63a4cabf8d147
Signed-off-by: Damjan Marion <[email protected]>
src/vlib/log.c
src/vlib/log.h

index be6b759..ff24ad1 100644 (file)
@@ -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)
 {
index 5bacd7f..712a63a 100644 (file)
@@ -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);