ctaza/dbg.cpp

25 lines
717 B
C++

#include "dbg.hpp"
#define vargs_call2(f, x, y) \
va_list argp; \
va_start(argp, y); \
f(x, y, argp); \
va_end(argp);
namespace dbg {
static void
log(const char *level, const char *msg, ...)
{
va_list argp;
va_start(argp, msg);
fprintf(stderr, "[%s] ", level);
vfprintf(stderr, msg, argp);
fputc('\n', stderr);
va_end(argp);
}
void info(const char *s, ...) { vargs_call2(log, "INFO", s); }
void warn(const char *s, ...) { vargs_call2(log, "WARN", s); }
void fatal(const char *s, ...) { vargs_call2(log, "FATL", s); }
}