vlib: add vlib_log_is_enabled
Type: improvement Change-Id: I052e0d56cc6d89cd66c83a9bb81e2273d396d510 Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:

committed by
Florin Coras

parent
2355e49733
commit
bf179a91d8
@ -70,27 +70,12 @@ last_log_entry ()
|
|||||||
i += lm->size;
|
i += lm->size;
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
static vlib_log_class_data_t *
|
|
||||||
get_class_data (vlib_log_class_t ci)
|
|
||||||
{
|
|
||||||
vlib_log_main_t *lm = &log_main;
|
|
||||||
return vec_elt_at_index (lm->classes, (ci >> 16));
|
|
||||||
}
|
|
||||||
|
|
||||||
static vlib_log_subclass_data_t *
|
|
||||||
get_subclass_data (vlib_log_class_t ci)
|
|
||||||
{
|
|
||||||
vlib_log_class_data_t *c = get_class_data (ci);
|
|
||||||
return vec_elt_at_index (c->subclasses, (ci & 0xffff));
|
|
||||||
}
|
|
||||||
|
|
||||||
u8 *
|
u8 *
|
||||||
format_vlib_log_class (u8 * s, va_list * args)
|
format_vlib_log_class (u8 * s, va_list * args)
|
||||||
{
|
{
|
||||||
vlib_log_class_t ci = va_arg (*args, vlib_log_class_t);
|
vlib_log_class_t ci = va_arg (*args, vlib_log_class_t);
|
||||||
vlib_log_class_data_t *c = get_class_data (ci);
|
vlib_log_class_data_t *c = vnet_log_get_class_data (ci);
|
||||||
vlib_log_subclass_data_t *sc = get_subclass_data (ci);
|
vlib_log_subclass_data_t *sc = vlib_log_get_subclass_data (ci);
|
||||||
|
|
||||||
if (sc->name)
|
if (sc->name)
|
||||||
return format (s, "%v/%v", c->name, sc->name);
|
return format (s, "%v/%v", c->name, sc->name);
|
||||||
@ -133,7 +118,7 @@ vlib_log (vlib_log_level_t level, vlib_log_class_t class, char *fmt, ...)
|
|||||||
vlib_main_t *vm = vlib_get_main ();
|
vlib_main_t *vm = vlib_get_main ();
|
||||||
vlib_log_main_t *lm = &log_main;
|
vlib_log_main_t *lm = &log_main;
|
||||||
vlib_log_entry_t *e;
|
vlib_log_entry_t *e;
|
||||||
vlib_log_subclass_data_t *sc = get_subclass_data (class);
|
vlib_log_subclass_data_t *sc = vlib_log_get_subclass_data (class);
|
||||||
va_list va;
|
va_list va;
|
||||||
f64 t = vlib_time_now (vm);
|
f64 t = vlib_time_now (vm);
|
||||||
f64 delta = t - sc->last_event_timestamp;
|
f64 delta = t - sc->last_event_timestamp;
|
||||||
@ -381,9 +366,10 @@ vlib_log_init (vlib_main_t *vm)
|
|||||||
{
|
{
|
||||||
r->class = vlib_log_register_class (r->class_name, r->subclass_name);
|
r->class = vlib_log_register_class (r->class_name, r->subclass_name);
|
||||||
if (r->default_level)
|
if (r->default_level)
|
||||||
get_subclass_data (r->class)->level = r->default_level;
|
vlib_log_get_subclass_data (r->class)->level = r->default_level;
|
||||||
if (r->default_syslog_level)
|
if (r->default_syslog_level)
|
||||||
get_subclass_data (r->class)->syslog_level = r->default_syslog_level;
|
vlib_log_get_subclass_data (r->class)->syslog_level =
|
||||||
|
r->default_syslog_level;
|
||||||
r = r->next;
|
r = r->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,6 +149,34 @@ __vlib_add_log_registration_##x (void) \
|
|||||||
} \
|
} \
|
||||||
__VA_ARGS__ vlib_log_class_registration_t x
|
__VA_ARGS__ vlib_log_class_registration_t x
|
||||||
|
|
||||||
|
static_always_inline vlib_log_class_data_t *
|
||||||
|
vnet_log_get_class_data (vlib_log_class_t ci)
|
||||||
|
{
|
||||||
|
vlib_log_main_t *lm = &log_main;
|
||||||
|
return vec_elt_at_index (lm->classes, (ci >> 16));
|
||||||
|
}
|
||||||
|
|
||||||
|
static_always_inline vlib_log_subclass_data_t *
|
||||||
|
vlib_log_get_subclass_data (vlib_log_class_t ci)
|
||||||
|
{
|
||||||
|
vlib_log_class_data_t *c = vnet_log_get_class_data (ci);
|
||||||
|
return vec_elt_at_index (c->subclasses, (ci & 0xffff));
|
||||||
|
}
|
||||||
|
|
||||||
|
static_always_inline int
|
||||||
|
vlib_log_is_enabled (vlib_log_level_t level, vlib_log_class_t class)
|
||||||
|
{
|
||||||
|
vlib_log_subclass_data_t *sc = vlib_log_get_subclass_data (class);
|
||||||
|
|
||||||
|
if (level <= sc->level && sc->level != VLIB_LOG_LEVEL_DISABLED)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (level <= sc->syslog_level && sc->syslog_level != VLIB_LOG_LEVEL_DISABLED)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* included_vlib_log_h */
|
#endif /* included_vlib_log_h */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user