[virt-tools-list] [virt-viewer] Use the same debug log handler regardless of glib version

Marc-André Lureau mlureau at redhat.com
Thu Jun 12 10:44:59 UTC 2014



----- Original Message -----
> Commit 2bd835fb introduced a custom log handler to ensure
> we never show debug messages by default regardless of glib
> version (older glib were showing them by default).
> These messages are only shown if the global variable 'doDebug'
> is set (ie when virt-viewer is started with --debug).
> 
> This special log handling is only performed with older glib versions.
> However, virt_viewer_app_set_debug() also has some code used with newer
> glib version to make sure debug messages are displayed  when using
> --debug.
> 
> Using the custom log handler regardless of the glib version allows to
> get rid of this version-specific code (and avoids a bug with
> glib_check_version() with the current code, the check for
> glib_check_version() return value is inverted).

That changes a bit the behaviour though, you will need to set G_MESSAGES_DEBUG on >2.32 instead of just using --debug.
and on > 2.32, you are requiring --debug to print the g_debug() messages (that was not the case before).

Imho, a better approach would be to get rid of --debug, and use a G_MESSAGES_DEBUG check on <2.32 to have same behaviour with
newer glib and other glib apps and libraries.

> ---
> The discussions around 'util: fix glib_check_version() condition' made me
> realize that we probably don't need the glib version check at all
> (only tested with glib 2.40)
> 
> 
>  src/virt-viewer-app.c  | 13 -------------
>  src/virt-viewer-util.c |  5 ++---
>  2 files changed, 2 insertions(+), 16 deletions(-)
> 
> diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
> index 7dbb7fc..1e81404 100644
> --- a/src/virt-viewer-app.c
> +++ b/src/virt-viewer-app.c
> @@ -181,19 +181,6 @@ static guint signals[SIGNAL_LAST];
>  void
>  virt_viewer_app_set_debug(gboolean debug)
>  {
> -#if GLIB_CHECK_VERSION(2, 31, 0)
> -    if (debug) {
> -        const gchar *doms = g_getenv("G_MESSAGES_DEBUG");
> -        if (!doms) {
> -            g_setenv("G_MESSAGES_DEBUG", G_LOG_DOMAIN, 1);
> -        } else if (!g_str_equal(doms, "all") &&
> -                   !strstr(doms, G_LOG_DOMAIN)) {
> -            gchar *newdoms = g_strdup_printf("%s %s", doms, G_LOG_DOMAIN);
> -            g_setenv("G_MESSAGES_DEBUG", newdoms, 1);
> -            g_free(newdoms);
> -        }
> -    }
> -#endif
>      doDebug = debug;
>  }
>  
> diff --git a/src/virt-viewer-util.c b/src/virt-viewer-util.c
> index c81c09a..cea4fbd 100644
> --- a/src/virt-viewer-util.c
> +++ b/src/virt-viewer-util.c
> @@ -283,9 +283,8 @@ static void log_handler(const gchar *log_domain,
>                          const gchar *message,
>                          gpointer unused_data)
>  {
> -    if (!glib_check_version(2, 32, 0))
> -        if (log_level >= G_LOG_LEVEL_DEBUG && !doDebug)
> -            return;
> +    if (log_level >= G_LOG_LEVEL_DEBUG && !doDebug)
> +        return;
>  
>      g_log_default_handler(log_domain, log_level, message, unused_data);
>  }
> --
> 1.9.3
> 
> _______________________________________________
> virt-tools-list mailing list
> virt-tools-list at redhat.com
> https://www.redhat.com/mailman/listinfo/virt-tools-list
> 




More information about the virt-tools-list mailing list