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

Jonathon Jongsma jjongsma at redhat.com
Tue Jun 24 13:45:20 UTC 2014


On Tue, 2014-06-24 at 09:50 +0200, Christophe Fergeau wrote:
> Ping?
> 
> On Thu, Jun 12, 2014 at 02:37:08PM +0200, Christophe Fergeau 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.
> > ---
> >  src/virt-viewer-app.c  |  3 +--
> >  src/virt-viewer-util.c | 14 ++++++++++++--
> >  2 files changed, 13 insertions(+), 4 deletions(-)
> > 
> > diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
> > index 7dbb7fc..ad571c8 100644
> > --- a/src/virt-viewer-app.c
> > +++ b/src/virt-viewer-app.c
> > @@ -181,7 +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) {
> > @@ -193,7 +192,7 @@ virt_viewer_app_set_debug(gboolean debug)
> >              g_free(newdoms);
> >          }
> >      }
> > -#endif
> > +
> >      doDebug = debug;
> >  }
> >  
> > diff --git a/src/virt-viewer-util.c b/src/virt-viewer-util.c
> > index 6fdaa07..6a20291 100644
> > --- a/src/virt-viewer-util.c
> > +++ b/src/virt-viewer-util.c
> > @@ -283,9 +283,19 @@ 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)
> > +#if !GLIB_CHECK_VERSION(2, 31, 0)
> > +    /* Older glibs were showing G_LOG_LEVEL_DEBUG messages by default */
> > +    if ((log_level == G_LOG_LEVEL_INFO)
> > +        || (log_level == G_LOG_LEVEL_DEBUG)) {
> > +        const char *domains = g_getenv ("G_MESSAGES_DEBUG");
> > +
> > +	if (domains == NULL)
> > +	    return;
> > +	if ((strcmp(domains, "all") != 0) &&
> > +	     (strstr(domains, G_LOG_DOMAIN) == NULL))
> >              return;

Can we use a static boolean flag here so that we don't have to strcmp
every single time this function is called to determine whether we should
log the message or not?

> > +    }
> > +#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
> _______________________________________________
> 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