| From 80810f04f2de6bae6e394f52ad9cdd2189862f74 Mon Sep 17 00:00:00 2001 |
| From: Jaroslav Rohel <jrohel@redhat.com> |
| Date: Fri, 9 Nov 2018 07:35:13 +0100 |
| Subject: [PATCH] Fix setup of logging (log domains) (RhBug:1645897) |
| |
| 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. |
| |
| Upstream-Status: Backport |
| |
| Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com> |
| --- |
| src/createrepo_shared.c | 19 ++++++------------- |
| src/misc.c | 5 ++++- |
| 2 files changed, 10 insertions(+), 14 deletions(-) |
| |
| diff --git a/src/createrepo_shared.c b/src/createrepo_shared.c |
| index 8a26787..7cb8ba8 100644 |
| --- a/src/createrepo_shared.c |
| +++ b/src/createrepo_shared.c |
| @@ -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)); |
| } |
| } |
| diff --git a/src/misc.c b/src/misc.c |
| index 9937480..9549a44 100644 |
| --- a/src/misc.c |
| +++ b/src/misc.c |
| @@ -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); |
| -- |
| 1.8.3.1 |
| |