aboutsummaryrefslogtreecommitdiff
path: root/src/log.c
diff options
context:
space:
mode:
authorFederico Angelilli <code@fedang.net>2023-11-17 21:45:01 +0100
committerFederico Angelilli <code@fedang.net>2023-11-17 23:04:15 +0100
commit4ecb33a50e05bb7302b7f8bface6a0a8af6b2e6f (patch)
tree084b7d040e5d36da9e5530b2f8e1503e1b78d5cf /src/log.c
parentfe3ed50e1da2bb4ced3172e86a3b244a9c3d4f1c (diff)
Move away from glib loggingnoglib
Diffstat (limited to 'src/log.c')
-rw-r--r--src/log.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/log.c b/src/log.c
index f4c529f..f22895a 100644
--- a/src/log.c
+++ b/src/log.c
@@ -1,26 +1,24 @@
-#include <glib.h>
+#include <stdio.h>
+#include <stdarg.h>
#include "log.h"
-static void log_handler(const char *log_domain,
- GLogLevelFlags level,
- const char *message,
- gpointer log_level)
-{
- GLogLevelFlags message_level = level & G_LOG_LEVEL_MASK;
-
- if ((GLogLevelFlags)log_level < message_level)
- return;
+// I know... It is what it is...
+static LogLevel global_level;
- if (message_level <= G_LOG_LEVEL_WARNING)
- g_printerr("%s\n", message);
- else
- g_print("%s\n", message);
+void log_init(LogLevel level)
+{
+ global_level = level;
}
-void log_init(GLogLevelFlags level)
+void log_generic(LogLevel level, const char *format, ...)
{
- g_log_set_default_handler(log_handler, (void *)level);
+ if (level < global_level) return;
+
+ va_list args;
+ va_start(args, format);
+ vfprintf(level >= LOG_WARN ? stderr : stdout, format, args);
+ va_end(args);
}
// vim: ts=4 sw=4 et