summaryrefslogtreecommitdiff
path: root/src/log.c
diff options
context:
space:
mode:
authorAnders Betts <anders.betts@gmail.com>2026-09-17 19:55:36 +0200
committerAnders Betts <anders.betts@gmail.com>2026-09-17 19:55:36 +0200
commit380195f7cd5e57acf2c1cf2bc41069e6b0b979ed (patch)
tree32a88fb22a7fbe8f1fd5c105156d1f928c93950d /src/log.c
downloadbokf-380195f7cd5e57acf2c1cf2bc41069e6b0b979ed.tar.gz
bokf-380195f7cd5e57acf2c1cf2bc41069e6b0b979ed.zip
Initial commit: daemon, clients, docs, Docker deploy pipelinev0.1.0
Diffstat (limited to 'src/log.c')
-rw-r--r--src/log.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/log.c b/src/log.c
new file mode 100644
index 0000000..616803f
--- /dev/null
+++ b/src/log.c
@@ -0,0 +1,45 @@
+#include "log.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+
+#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);
+}