[Spice-devel] [spice-common v4 3/7] log: Use glib for logging
Frediano Ziglio
fziglio at redhat.com
Tue Jan 26 03:49:55 PST 2016
>
> On Thu, Jan 21, 2016 at 07:29:59AM -0500, Frediano Ziglio wrote:
> > > + /* Make sure GLib default log handler will show the debug
> > > messages. Messing with
> > > + * environment variables like this is ugly, but this only
> > > happens when the legacy
> > > + * SPICE_DEBUG_LEVEL is used
> > > + */
> > > + debug_env = (char *)g_getenv("G_MESSAGES_DEBUG");
> > > + if (debug_env == NULL) {
> > > + g_setenv("G_MESSAGES_DEBUG", SPICE_LOG_DOMAIN, FALSE);
> > > + } else {
> > > + debug_env = g_strconcat(debug_env, ":",
> > > SPICE_LOG_DOMAIN,
> > > NULL);
> > > + g_setenv("G_MESSAGES_DEBUG", SPICE_LOG_DOMAIN, FALSE);
> > > + g_free(debug_env);
> >
> > A library should never set environment variable.
>
> This is the only way I could find to keep SPICE_DEBUG_LEVEL keep working
> as it used to even when g_debug() is used. This code is being careful to
> only make somehow safe changes to that variable.
> This environment variable is only set in a legacy case (ie one I'd like
> to see go away), and this legacy case goes with a runtime warning
> encouraging the user to switch to setting G_MESSAGES_DEBUG instead (in
> which case we do not muck with env variables ourselves).
> In my opinion, it's reasonable enough, especially without an alternative
> to achieve that.
>
Sounds reasonable. I'd add a TODO in the comment to remove in a couple of versions.
I don't know if is possible to make code fail compiling if the version
bump a bit.
> > > -void spice_logv(const char *log_domain,
> > > - SpiceLogLevel log_level,
> > > - const char *strloc,
> > > - const char *function,
> > > - const char *format,
> > > - va_list args) SPICE_ATTR_PRINTF(5, 0);
> > > -
> >
> > Sure does not break anything?
>
> Not that I know of, I'll try rebuilding spice-gtk as I mainly tested
> with spice-server.
>
Using grep seems is not used.
> Christophe
>
Frediano
More information about the Spice-devel
mailing list