bird-lg/logging.h

41 lines
779 B
C

#ifndef _LOGGING_HEADER
#define _LOGGING_HEADER 1
#include <stdarg.h>
// log levels:
// 0: no logging
// 1: errors
// 2: warnings
// 3: info
// 4: trace
#define log_error(...) log_message(1, __VA_ARGS__)
#define log_warning(...) log_message(2, __VA_ARGS__)
#define log_info(...) log_message(3, __VA_ARGS__)
#ifdef LOG_ENABLE_TRACE
#define log_trace(...) log_message(4, __VA_ARGS__)
#endif
#ifndef LOG_ENABLE_TRACE
#define log_trace(...) do {} while(0)
#endif
int log_level = 1;
void log_message(int level, const char * format, ...) {
va_list args;
va_start(args, format);
if(level <= log_level) {
// TODO: format log messages with timestamp, log level and newline at the end
vfprintf(stderr, format, args);
}
va_end(args);
}
#endif