Default logger implementation can be modified by dbg_default_set_level/stream

This commit is contained in:
Martin Willi
2009-09-16 13:06:16 +02:00
parent a474081f1f
commit 5289249449
2 changed files with 45 additions and 5 deletions
+37 -3
View File
@@ -18,20 +18,54 @@
#include "debug.h"
/**
* level logged by the default logger
*/
static int default_level = 1;
/**
* stream logged to by the default logger
*/
static FILE *default_stream = NULL;
/**
* default dbg function which printf all to stderr
*/
void dbg_default(int level, char *fmt, ...)
{
if (level <= 1)
if (!default_stream)
{
default_stream = stderr;
}
if (level <= default_level)
{
va_list args;
va_start(args, fmt);
vfprintf(stderr, fmt, args);
fprintf(stderr, "\n");
vfprintf(default_stream, fmt, args);
fprintf(default_stream, "\n");
va_end(args);
}
}
/**
* set the level logged by the default stderr logger
*/
void dbg_default_set_level(int level)
{
default_level = level;
}
/**
* set the stream logged by dbg_default() to
*/
void dbg_default_set_stream(FILE *stream)
{
default_stream = stream;
}
/**
* The registered debug hook.
*/
void (*dbg) (int level, char *fmt, ...) = dbg_default;
+8 -2
View File
@@ -52,10 +52,16 @@
# define DBG4(...) {}
#endif
/** dbg function hook, uses stderr logger by default */
/** dbg function hook, uses dbg_default() by default */
extern void (*dbg) (int level, char *fmt, ...);
/** default logging function, prints to stderr */
/** default logging function */
void dbg_default(int level, char *fmt, ...);
/** set the level logged by dbg_default() */
void dbg_default_set_level(int level);
/** set the stream logged by dbg_default() to */
void dbg_default_set_stream(FILE *stream);
#endif /** DEBUG_H_ @}*/