}
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);
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)
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)
{
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);