debug: Support configuring different log levels for groups in default logger

This commit is contained in:
Tobias Brunner
2022-06-29 10:28:50 +02:00
parent 4e5a2037e7
commit 35edbc4048
2 changed files with 32 additions and 10 deletions
+28 -9
View File
@@ -63,9 +63,10 @@ ENUM(debug_lower_names, DBG_DMN, DBG_ANY,
);
/**
* level logged by the default logger
* level logged by the default logger for specific groups, to simplify things
* we store level-1, so initialization to 0 is like setting it to 1
*/
static level_t default_level = 1;
static level_t default_level[DBG_MAX];
/**
* stream logged to by the default logger
@@ -81,7 +82,8 @@ void dbg_default(debug_t group, level_t level, char *fmt, ...)
{
default_stream = stderr;
}
if (level <= default_level)
/* levels are stored as level-1 */
if (level <= default_level[group]+1)
{
va_list args;
@@ -92,16 +94,34 @@ void dbg_default(debug_t group, level_t level, char *fmt, ...)
}
}
/**
* set the level logged by the default stderr logger
/*
* Described in header
*/
void dbg_default_set_level_group(debug_t group, level_t level)
{
if (group < DBG_ANY)
{
default_level[group] = level-1;
}
else
{
for (group = 0; group < DBG_MAX; group++)
{
default_level[group] = level-1;
}
}
}
/*
* Described in header
*/
void dbg_default_set_level(level_t level)
{
default_level = level;
dbg_default_set_level_group(DBG_ANY, level);
}
/**
* set the stream logged by dbg_default() to
/*
* Described in header
*/
void dbg_default_set_stream(FILE *stream)
{
@@ -112,4 +132,3 @@ void dbg_default_set_stream(FILE *stream)
* The registered debug hook.
*/
void (*dbg) (debug_t group, level_t level, char *fmt, ...) = dbg_default;