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;
|
||||
|
||||
|
||||
@@ -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_ @}*/
|
||||
|
||||
Reference in New Issue
Block a user