15static GLogLevelFlags log_level = G_LOG_LEVEL_MESSAGE;
17static enum log_mask log_mask = DUNST_LOG_AUTO;
19static const char *log_level_to_string(GLogLevelFlags level)
22 case G_LOG_LEVEL_ERROR:
return "ERROR";
23 case G_LOG_LEVEL_CRITICAL:
return "CRITICAL";
24 case G_LOG_LEVEL_WARNING:
return "WARNING";
25 case G_LOG_LEVEL_MESSAGE:
return "MESSAGE";
26 case G_LOG_LEVEL_INFO:
return "INFO";
27 case G_LOG_LEVEL_DEBUG:
return "DEBUG";
28 default:
return "UNKNOWN";
37 log_level = G_LOG_LEVEL_CRITICAL;
39 log_level = G_LOG_LEVEL_CRITICAL;
41 log_level = G_LOG_LEVEL_WARNING;
43 log_level = G_LOG_LEVEL_WARNING;
45 log_level = G_LOG_LEVEL_MESSAGE;
47 log_level = G_LOG_LEVEL_MESSAGE;
49 log_level = G_LOG_LEVEL_INFO;
51 log_level = G_LOG_LEVEL_DEBUG;
53 log_level = G_LOG_LEVEL_DEBUG;
55 LOG_W(
"Unknown log level: '%s'", level);
72 const gchar *log_domain,
73 GLogLevelFlags message_level,
79 GLogLevelFlags message_level_masked = message_level & G_LOG_LEVEL_MASK;
81 if (log_mask == DUNST_LOG_NONE ||
82 (log_mask == DUNST_LOG_AUTO && log_level < message_level_masked))
85 const char *log_level_str =
86 log_level_to_string(message_level_masked);
89 if (message_level_masked <= G_LOG_LEVEL_WARNING)
90 g_printerr(
"%s: %s\n", log_level_str, message);
92 g_print(
"%s: %s\n", log_level_str, message);
void log_set_level_from_string(const char *level)
Set the current loglevel to level
static void dunst_log_handler(const gchar *log_domain, GLogLevelFlags message_level, const gchar *message, gpointer ignore)
Log handling function for GLib's logging wrapper.
void dunst_log_init(enum log_mask mask)
Initialise log handling.
void log_set_level(GLogLevelFlags level)
Set the current loglevel to level
Logging subsystem and helpers.
String, time and other various helpers.
#define ASSERT_OR_RET(expr, val)
Assert that expr evaluates to true, if not return val.
#define STR_CASEQ(a, b)
Test if string a and b are the same case-insensitively.