[virt-tools-list] [virt-viewer v2] log: Handle G_MESSAGES_DEBUG with older glibs

Marc-André Lureau marcandre.lureau at gmail.com
Mon Jul 14 18:08:04 UTC 2014


It's a nice idea, but I have to nack. Imho we shouldn't introduce
G_MESSAGES_DEBUG handling for older glib that didn't support it.


On Fri, Jun 27, 2014 at 6:39 PM, Christophe Fergeau <cfergeau at redhat.com>
wrote:

> 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).
>
> However this custom log handler does not take into account
> G_MESSAGES_DEBUG. This commit adds support for that and
> makes the handling of --debug identical between older and newer glibs.
> ---
>
> Changes since v1:
> - on older glibs, only do the getenv dance once instead of once
>   per log-message
>
>  src/virt-viewer-app.c  | 17 ++++++++++-------
>  src/virt-viewer-util.c |  8 +++++---
>  2 files changed, 15 insertions(+), 10 deletions(-)
>
> diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
> index 24ca5c1..a523090 100644
> --- a/src/virt-viewer-app.c
> +++ b/src/virt-viewer-app.c
> @@ -183,19 +183,22 @@ 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) {
> +    const gchar *doms = g_getenv("G_MESSAGES_DEBUG");
> +    if (!doms) {
> +        if (debug)
>              g_setenv("G_MESSAGES_DEBUG", G_LOG_DOMAIN, 1);
> -        } else if (!g_str_equal(doms, "all") &&
> -                   !strstr(doms, G_LOG_DOMAIN)) {
> +    } else if (!g_str_equal(doms, "all") &&
> +               !strstr(doms, G_LOG_DOMAIN)) {
> +        if (debug) {
>              gchar *newdoms = g_strdup_printf("%s %s", doms, G_LOG_DOMAIN);
>              g_setenv("G_MESSAGES_DEBUG", newdoms, 1);
>              g_free(newdoms);
>          }
> +    } else {
> +        /* G_MESSAGES_DEBUG=all or G_MESSAGES_DEBUG contains G_LOG_DOMAIN
> */
> +        debug = TRUE;
>      }
> -#endif
> +
>      doDebug = debug;
>  }
>
> diff --git a/src/virt-viewer-util.c b/src/virt-viewer-util.c
> index 6fdaa07..f4bd20a 100644
> --- a/src/virt-viewer-util.c
> +++ b/src/virt-viewer-util.c
> @@ -283,9 +283,11 @@ static void log_handler(const gchar *log_domain,
>                          const gchar *message,
>                          gpointer unused_data)
>  {
> -    if (glib_check_version(2, 32, 0) != NULL)
> -        if (log_level >= G_LOG_LEVEL_DEBUG && !doDebug)
> -            return;
> +#if !GLIB_CHECK_VERSION(2, 31, 0)
> +    /* Older glibs were showing G_LOG_LEVEL_{INFO,DEBUG} messages by
> default */
> +    if (log_level >= G_LOG_LEVEL_INFO && !doDebug)
> +        return;
> +#endif
>
>      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
>



-- 
Marc-André Lureau
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/virt-tools-list/attachments/20140714/e86d87ad/attachment.htm>


More information about the virt-tools-list mailing list