Default logger implementation can be modified by dbg_default_set_level/stream
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user