1414// NOTE: Keep updated with the dunst manual
1515static GLogLevelFlags log_level = G_LOG_LEVEL_MESSAGE ;
1616
17+ static enum log_mask log_mask = DUNST_LOG_AUTO ;
18+
1719/* see log.h */
1820static const char * log_level_to_string (GLogLevelFlags level )
1921{
2022 switch (level ) {
21- case G_LOG_LEVEL_ERROR : return "ERROR" ;
22- case G_LOG_LEVEL_CRITICAL : return "CRITICAL" ;
23- case G_LOG_LEVEL_WARNING : return "WARNING" ;
24- case G_LOG_LEVEL_MESSAGE : return "MESSAGE" ;
25- case G_LOG_LEVEL_INFO : return "INFO" ;
26- case G_LOG_LEVEL_DEBUG : return "DEBUG" ;
27- default : return "UNKNOWN" ;
23+ case G_LOG_LEVEL_ERROR : return "ERROR" ;
24+ case G_LOG_LEVEL_CRITICAL : return "CRITICAL" ;
25+ case G_LOG_LEVEL_WARNING : return "WARNING" ;
26+ case G_LOG_LEVEL_MESSAGE : return "MESSAGE" ;
27+ case G_LOG_LEVEL_INFO : return "INFO" ;
28+ case G_LOG_LEVEL_DEBUG : return "DEBUG" ;
29+ default : return "UNKNOWN" ;
2830 }
2931}
3032
@@ -66,27 +68,22 @@ void log_set_level(GLogLevelFlags level)
6668 * @param log_domain Used only by GLib
6769 * @param message_level Used only by GLib
6870 * @param message Used only by GLib
69- * @param testing If not `NULL` (here: `true`), do nothing
71+ * @param ignore
7072 */
7173static void dunst_log_handler (
7274 const gchar * log_domain ,
7375 GLogLevelFlags message_level ,
7476 const gchar * message ,
75- gpointer testing )
77+ gpointer ignore )
7678{
7779 (void )log_domain ;
7880
79- if (testing )
80- log_level = G_LOG_LEVEL_ERROR ;
81-
8281 GLogLevelFlags message_level_masked = message_level & G_LOG_LEVEL_MASK ;
8382
84- /* if you want to have a debug build, you want to log anything,
85- * unconditionally, without specifying debug log level again */
86- #ifndef DEBUG_BUILD
87- if (log_level < message_level_masked )
83+ if (log_mask == DUNST_LOG_NONE ||
84+ (log_mask == DUNST_LOG_AUTO && log_level < message_level_masked ))
8885 return ;
89- #endif
86+
9087 const char * log_level_str =
9188 log_level_to_string (message_level_masked );
9289
@@ -98,9 +95,10 @@ static void dunst_log_handler(
9895}
9996
10097/* see log.h */
101- void dunst_log_init (bool testing )
98+ void dunst_log_init (enum log_mask mask )
10299{
103- g_log_set_default_handler (dunst_log_handler , (void * )testing );
100+ log_mask = mask ;
101+ g_log_set_default_handler (dunst_log_handler , NULL );
104102}
105103
106104/* vim: set ft=c tabstop=8 shiftwidth=8 expandtab textwidth=0: */
0 commit comments