aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/comet.c2
-rw-r--r--src/connect.c2
-rw-r--r--src/draw.c1
-rw-r--r--src/log.c30
-rw-r--r--src/log.h35
5 files changed, 40 insertions, 30 deletions
diff --git a/src/comet.c b/src/comet.c
index cf325bf..4edcb05 100644
--- a/src/comet.c
+++ b/src/comet.c
@@ -25,7 +25,7 @@ static gboolean mainloop_draw(gpointer data)
int main(int argc, char **argv)
{
- log_init(G_LOG_LEVEL_DEBUG);
+ log_init(LOG_DEBUG);
GMainLoop *mainloop = g_main_loop_new(NULL, FALSE);
diff --git a/src/connect.c b/src/connect.c
index 0ef12f9..8c57a87 100644
--- a/src/connect.c
+++ b/src/connect.c
@@ -27,7 +27,7 @@ static void update_xrm(Connection *con)
xcb_xrm_database_t *database = xcb_xrm_database_from_default(con->connection);
if (database == NULL) {
- log_warning("Xrm database couldn't be updated");
+ log_warn("Xrm database couldn't be updated");
return;
}
diff --git a/src/draw.c b/src/draw.c
index 4362950..93dda3c 100644
--- a/src/draw.c
+++ b/src/draw.c
@@ -1,4 +1,3 @@
-#include <glib.h>
#include <math.h>
#include <pango/pangocairo.h>
#include <pango/pango-font.h>
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
diff --git a/src/log.h b/src/log.h
index c96536b..ac5cdff 100644
--- a/src/log.h
+++ b/src/log.h
@@ -1,26 +1,39 @@
#ifndef COMET_LOG_H
#define COMET_LOG_H
-#include <glib.h>
+#define COLOR_CLEAR "\x1b[0m"
+#define COLOR_DEBUG "\x1b[1;37m"
+#define COLOR_INFO "\x1b[1;96m"
+#define COLOR_WARN "\x1b[1;33m"
+#define COLOR_ERROR "\x1b[1;31m"
#define DEBUG_FORMAT(format, ...) \
- "[%s] \x1b[1mdebug\x1b[0m: " format, __func__, ## __VA_ARGS__
+ "[%s] " COLOR_DEBUG "debug" COLOR_CLEAR ": " format "\n", __func__, ## __VA_ARGS__
#define INFO_FORMAT(format, ...) \
- "[%s] \x1b[1;96minfo\x1b[0m: " format, __func__, ## __VA_ARGS__
+ "[%s] " COLOR_INFO "info" COLOR_CLEAR ": " format "\n", __func__, ## __VA_ARGS__
-#define WARNING_FORMAT(format, ...) \
- "[%s] \x1b[1;33mwarning\x1b[0m: " format, __func__, ## __VA_ARGS__
+#define WARN_FORMAT(format, ...) \
+ "[%s] " COLOR_WARN "warning" COLOR_CLEAR ": " format "\n", __func__, ## __VA_ARGS__
#define ERROR_FORMAT(format, ...) \
- "[%s] \x1b[1;31merror\x1b[0m: " format, __func__, ## __VA_ARGS__
+ "[%s] " COLOR_ERROR "error" COLOR_CLEAR ": " format "\n", __func__, ## __VA_ARGS__
-#define log_debug(...) g_debug(DEBUG_FORMAT(__VA_ARGS__))
-#define log_info(...) g_info(INFO_FORMAT(__VA_ARGS__))
-#define log_warning(...) g_warning(WARNING_FORMAT(__VA_ARGS__))
-#define log_error(...) g_error(ERROR_FORMAT(__VA_ARGS__))
+#define log_debug(...) log_generic(LOG_DEBUG, DEBUG_FORMAT(__VA_ARGS__))
+#define log_info(...) log_generic(LOG_INFO, INFO_FORMAT(__VA_ARGS__))
+#define log_warn(...) log_generic(LOG_WARN, WARN_FORMAT(__VA_ARGS__))
+#define log_error(...) log_generic(LOG_ERROR, ERROR_FORMAT(__VA_ARGS__))
-void log_init(GLogLevelFlags level);
+typedef enum {
+ LOG_DEBUG,
+ LOG_INFO,
+ LOG_WARN,
+ LOG_ERROR,
+} LogLevel;
+
+void log_init(LogLevel level);
+
+void log_generic(LogLevel level, const char *format, ...);
#endif