);
/**
- * 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
{
default_stream = stderr;
}
- if (level <= default_level)
+ /* levels are stored as level-1 */
+ if (level <= default_level[group]+1)
{
va_list args;
}
}
-/**
- * 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)
{
* The registered debug hook.
*/
void (*dbg) (debug_t group, level_t level, char *fmt, ...) = dbg_default;
-
/** default logging function */
void dbg_default(debug_t group, level_t level, char *fmt, ...);
-/** set the level logged by dbg_default() */
+/** set the level logged by dbg_default() for all groups */
void dbg_default_set_level(level_t level);
+/** set the level logged by dbg_default() for a specific group */
+void dbg_default_set_level_group(debug_t group, level_t level);
+
/** set the stream logged by dbg_default() to */
void dbg_default_set_stream(FILE *stream);