Improved debugging facilities

This commit is contained in:
Jesse van den Kieboom 2005-11-06 16:20:30 +00:00
parent bd9e4d10d6
commit 13e89cb1f2
1 changed files with 29 additions and 24 deletions

View File

@ -5,35 +5,40 @@
#include <errno.h>
#include <glib.h>
int dbgLevel = 0;
static gint debug_level = DEBUG_ALWAYS;
static void
gm_debug_msg_real(FILE *f, struct tm *timet, gchar *line, va_list args) {
fprintf(f, "[%02d:%02d:%02d] # ", timet->tm_hour, timet->tm_min,
timet->tm_sec);
vfprintf(f, line, args);
fprintf(f, "\n");
}
void
debug_msg(int level, char *line, ...) {
struct tm *timet;
time_t timer;
va_list args;
FILE *f;
gm_debug_msg(gint level, gchar *line, ...) {
struct tm *timet;
time_t timer;
va_list args;
if (dbgLevel >= level) {
va_start(args, line);
timer = time(0);
timet = localtime(&timer);
if (level == 0) {
f = stdout;
} else {
f = stderr;
}
if (debug_level | level == debug_level) {
va_start(args, line);
timer = time(0);
timet = localtime(&timer);
fprintf(f, "[%02d:%02d:%02d] # ", timet->tm_hour, timet->tm_min,
timet->tm_sec);
vfprintf(f, line, args);
printf("\n");
va_end(args);
}
if (level & DEBUG_ALWAYS) {
gm_debug_msg_real(stdout, timet, line, args);
}
if (level & DEBUG_ALWAYS != level) {
gm_debug_msg_real(stderr, timet, line, args);
}
va_end(args);
}
}
void
debug_set_level(int level) {
dbgLevel = level;
debug_set_level(gint level) {
debug_level = level;
}