42 lines
826 B
C
42 lines
826 B
C
#include "amduat/util/log.h"
|
|
|
|
#include <stdbool.h>
|
|
#include <stdio.h>
|
|
|
|
static const char *amduat_log_level_label(amduat_log_level_t level) {
|
|
switch (level) {
|
|
case AMDUAT_LOG_ERROR:
|
|
return "ERROR";
|
|
case AMDUAT_LOG_WARN:
|
|
return "WARN";
|
|
case AMDUAT_LOG_INFO:
|
|
return "INFO";
|
|
case AMDUAT_LOG_DEBUG:
|
|
return "DEBUG";
|
|
default:
|
|
return "LOG";
|
|
}
|
|
}
|
|
|
|
static bool amduat_log_debug_enabled(void) {
|
|
#ifdef AMDUAT_LOG_ENABLE_DEBUG
|
|
return true;
|
|
#else
|
|
return false;
|
|
#endif
|
|
}
|
|
|
|
void amduat_log(amduat_log_level_t level, const char *fmt, ...) {
|
|
va_list ap;
|
|
|
|
if (level == AMDUAT_LOG_DEBUG && !amduat_log_debug_enabled()) {
|
|
return;
|
|
}
|
|
|
|
fprintf(stderr, "%s: ", amduat_log_level_label(level));
|
|
va_start(ap, fmt);
|
|
vfprintf(stderr, fmt, ap);
|
|
va_end(ap);
|
|
fputc('\n', stderr);
|
|
}
|