Fix setup of logging (log domains) (RhBug:1645897) 91/260691/1 upstream/0.10.4
authorJaroslav Rohel <jrohel@redhat.com>
Fri, 9 Nov 2018 06:35:13 +0000 (07:35 +0100)
committerJeonghoon Park <jh1979.park@samsung.com>
Thu, 1 Jul 2021 06:54:51 +0000 (15:54 +0900)
New debug messages were added into GLib library. These messages come
from the "GLib" log domain and were not hidden in the standard and
quiet mode of the application.
This fix hides log messages regardless on source log domain.

Change-Id: I04052ed452a75382cad5c117830358baf2c014b9

src/createrepo_shared.c
src/misc.c

index 8a26787c0478945ff86040eefc7c5d58faeedfd2..7cb8ba8a3bad330f1316c9cc33487a22cc30b449 100644 (file)
@@ -270,24 +270,17 @@ cr_lock_repo(const gchar *repo_dir,
 void
 cr_setup_logging(gboolean quiet, gboolean verbose)
 {
-    g_log_set_default_handler (cr_log_fn, NULL);
-
     if (quiet) {
         // Quiet mode
-        GLogLevelFlags levels = G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO |
-                                G_LOG_LEVEL_DEBUG | G_LOG_LEVEL_WARNING;
-        g_log_set_handler(NULL, levels, cr_null_log_fn, NULL);
-        g_log_set_handler("C_CREATEREPOLIB", levels, cr_null_log_fn, NULL);
+        GLogLevelFlags hidden_levels = G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO |
+                                       G_LOG_LEVEL_DEBUG | G_LOG_LEVEL_WARNING;
+        g_log_set_default_handler (cr_log_fn, GINT_TO_POINTER(hidden_levels));
     } else if (verbose) {
         // Verbose mode
-        GLogLevelFlags levels = G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO |
-                                G_LOG_LEVEL_DEBUG | G_LOG_LEVEL_WARNING;
-        g_log_set_handler(NULL, levels, cr_log_fn, NULL);
-        g_log_set_handler("C_CREATEREPOLIB", levels, cr_log_fn, NULL);
+        g_log_set_default_handler (cr_log_fn, GINT_TO_POINTER(0));
     } else {
         // Standard mode
-        GLogLevelFlags levels = G_LOG_LEVEL_DEBUG;
-        g_log_set_handler(NULL, levels, cr_null_log_fn, NULL);
-        g_log_set_handler("C_CREATEREPOLIB", levels, cr_null_log_fn, NULL);
+        GLogLevelFlags hidden_levels = G_LOG_LEVEL_DEBUG;
+        g_log_set_default_handler (cr_log_fn, GINT_TO_POINTER(hidden_levels));
     }
 }
index 99374809fd85fb03b91f96889a7b86c624eb5b7f..9549a446bb6f042b5ecffa384a284c5f664e2bb1 100644 (file)
@@ -912,8 +912,11 @@ void
 cr_log_fn(const gchar *log_domain,
           GLogLevelFlags log_level,
           const gchar *message,
-          G_GNUC_UNUSED gpointer user_data)
+          gpointer user_data)
 {
+    gint hidden_log_levels = GPOINTER_TO_INT(user_data);
+    if (log_level & hidden_log_levels)
+        return;
     switch(log_level) {
         case G_LOG_LEVEL_ERROR:
             if (log_domain) g_printerr("%s: ", log_domain);