#include "log.h" #include #include #include #include #include "util.h" static int g_level = LOG_INFO; void log_set_level(int level) { g_level = level; } int log_level_from_name(const char *name) { if (!name) return LOG_INFO; if (strcmp(name, "error") == 0) return LOG_ERROR; if (strcmp(name, "warn") == 0) return LOG_WARN; if (strcmp(name, "info") == 0) return LOG_INFO; if (strcmp(name, "debug") == 0) return LOG_DEBUG; return LOG_INFO; } void log_msg(int level, const char *fmt, ...) { if (level > g_level) return; static const char *names[] = { "error", "warn", "info", "debug" }; char ts[32]; util_iso8601(util_now(), ts, sizeof ts); fprintf(stderr, "%s [%s] ", ts, names[level]); va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); fputc('\n', stderr); }