diff options
| author | Federico Angelilli <code@fedang.net> | 2023-11-17 21:45:01 +0100 |
|---|---|---|
| committer | Federico Angelilli <code@fedang.net> | 2023-11-17 23:04:15 +0100 |
| commit | 4ecb33a50e05bb7302b7f8bface6a0a8af6b2e6f (patch) | |
| tree | 084b7d040e5d36da9e5530b2f8e1503e1b78d5cf /src | |
| parent | fe3ed50e1da2bb4ced3172e86a3b244a9c3d4f1c (diff) | |
Move away from glib loggingnoglib
Diffstat (limited to 'src')
| -rw-r--r-- | src/comet.c | 2 | ||||
| -rw-r--r-- | src/connect.c | 2 | ||||
| -rw-r--r-- | src/draw.c | 1 | ||||
| -rw-r--r-- | src/log.c | 30 | ||||
| -rw-r--r-- | src/log.h | 35 |
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; } @@ -1,4 +1,3 @@ -#include <glib.h> #include <math.h> #include <pango/pangocairo.h> #include <pango/pango-font.h> @@ -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 @@ -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 |
