Default logger implementation can be modified by dbg_default_set_level/stream
This commit is contained in:
@@ -18,20 +18,54 @@
|
|||||||
|
|
||||||
#include "debug.h"
|
#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
|
* default dbg function which printf all to stderr
|
||||||
*/
|
*/
|
||||||
void dbg_default(int level, char *fmt, ...)
|
void dbg_default(int level, char *fmt, ...)
|
||||||
{
|
{
|
||||||
if (level <= 1)
|
if (!default_stream)
|
||||||
|
{
|
||||||
|
default_stream = stderr;
|
||||||
|
}
|
||||||
|
if (level <= default_level)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vfprintf(stderr, fmt, args);
|
vfprintf(default_stream, fmt, args);
|
||||||
fprintf(stderr, "\n");
|
fprintf(default_stream, "\n");
|
||||||
va_end(args);
|
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;
|
void (*dbg) (int level, char *fmt, ...) = dbg_default;
|
||||||
|
|
||||||
|
|||||||
@@ -52,10 +52,16 @@
|
|||||||
# define DBG4(...) {}
|
# define DBG4(...) {}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** dbg function hook, uses stderr logger by default */
|
/** dbg function hook, uses dbg_default() by default */
|
||||||
extern void (*dbg) (int level, char *fmt, ...);
|
extern void (*dbg) (int level, char *fmt, ...);
|
||||||
|
|
||||||
/** default logging function, prints to stderr */
|
/** default logging function */
|
||||||
void dbg_default(int level, char *fmt, ...);
|
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_ @}*/
|
#endif /** DEBUG_H_ @}*/
|
||||||
|
|||||||
Reference in New Issue
Block a user