logging: add log_vty_{level,category}_string()

This commit is contained in:
Harald Welte 2010-05-11 16:39:22 +02:00
parent 9ac2225ff4
commit 7638af95fd
2 changed files with 50 additions and 0 deletions

View File

@ -128,4 +128,8 @@ struct log_target *log_target_create_stderr(void);
void log_add_target(struct log_target *target);
void log_del_target(struct log_target *target);
/* Gernerate command argument strings for VTY use */
const char *log_vty_category_string(struct log_info *info);
const char *log_vty_level_string(struct log_info *info);
#endif /* _OSMOCORE_LOGGING_H */

View File

@ -366,6 +366,52 @@ struct log_target *log_target_create_stderr(void)
#endif /* stderr */
}
const char *log_vty_level_string(struct log_info *info)
{
const struct value_string *vs;
unsigned int len = 3; /* ()\0 */
char *str;
for (vs = loglevel_strs; vs->value || vs->str; vs++)
len += strlen(vs->str) + 1;
str = talloc_zero_size(NULL, len);
if (!str)
return NULL;
str[0] = '(';
for (vs = loglevel_strs; vs->value || vs->str; vs++) {
strcat(str, vs->str);
strcat(str, "|");
}
str[strlen(str)-1] = ')';
return str;
}
const char *log_vty_category_string(struct log_info *info)
{
unsigned int len = 3; /* "()\0" */
unsigned int i;
char *str;
for (i = 0; i < info->num_cat; i++)
len += strlen(info->cat[i].name) + 1;
str = talloc_zero_size(NULL, len);
if (!str)
return NULL;
str[0] = '(';
for (i = 0; i < info->num_cat; i++) {
strcat(str, info->cat[i].name+1);
strcat(str, "|");
}
str[strlen(str)-1] = ')';
return str;
}
void log_init(const struct log_info *cat)
{
tall_log_ctx = talloc_named_const(NULL, 1, "logging");