Acked-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> On Thu, Jun 08, 2017 at 02:05:18PM +0100, Frediano Ziglio wrote: > As we moved toward GLib logging instead of having to convert > every time the log level from the old system to GLib use > directly GLib constants. > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > common/log.c | 35 +++++++++++++++++++++-------------- > common/log.h | 26 +++++++++----------------- > 2 files changed, 30 insertions(+), 31 deletions(-) > > Changes since v1: > - some suggested variable rename and test optimization > > diff --git a/common/log.c b/common/log.c > index 7437d3e..61a27ac 100644 > --- a/common/log.c > +++ b/common/log.c > @@ -31,16 +31,24 @@ > #include "backtrace.h" > > static int glib_debug_level = INT_MAX; > -static int abort_level = -1; > +static int abort_mask = 0; > > -#ifndef SPICE_ABORT_LEVEL_DEFAULT > +#ifndef SPICE_ABORT_MASK_DEFAULT > #ifdef SPICE_DISABLE_ABORT > -#define SPICE_ABORT_LEVEL_DEFAULT -1 > +#define SPICE_ABORT_MASK_DEFAULT 0 > #else > -#define SPICE_ABORT_LEVEL_DEFAULT SPICE_LOG_LEVEL_CRITICAL > +#define SPICE_ABORT_MASK_DEFAULT (G_LOG_LEVEL_CRITICAL|G_LOG_LEVEL_ERROR) > #endif > #endif > > +typedef enum { > + SPICE_LOG_LEVEL_ERROR, > + SPICE_LOG_LEVEL_CRITICAL, > + SPICE_LOG_LEVEL_WARNING, > + SPICE_LOG_LEVEL_INFO, > + SPICE_LOG_LEVEL_DEBUG, > +} SpiceLogLevel; > + > static GLogLevelFlags spice_log_level_to_glib(SpiceLogLevel level) > { > static const GLogLevelFlags glib_levels[] = { > @@ -95,23 +103,23 @@ static void spice_log_set_debug_level(void) > > static void spice_log_set_abort_level(void) > { > - if (abort_level == -1) { > + if (abort_mask == 0) { > const char *abort_str = g_getenv("SPICE_ABORT_LEVEL"); > if (abort_str != NULL) { > GLogLevelFlags glib_abort_level; > > /* FIXME: To be removed after enough deprecation time */ > g_warning("Setting SPICE_ABORT_LEVEL is deprecated, use G_DEBUG instead"); > - abort_level = atoi(abort_str); > - glib_abort_level = spice_log_level_to_glib(abort_level); > + glib_abort_level = spice_log_level_to_glib(atoi(abort_str)); > unsigned int fatal_mask = G_LOG_FATAL_MASK; > while (glib_abort_level >= G_LOG_LEVEL_ERROR) { > fatal_mask |= glib_abort_level; > glib_abort_level >>= 1; > } > + abort_mask = fatal_mask; > g_log_set_fatal_mask(SPICE_LOG_DOMAIN, fatal_mask); > } else { > - abort_level = SPICE_ABORT_LEVEL_DEFAULT; > + abort_mask = SPICE_ABORT_MASK_DEFAULT; > } > } > } > @@ -146,16 +154,15 @@ SPICE_CONSTRUCTOR_FUNC(spice_log_init) > } > > static void spice_logv(const char *log_domain, > - SpiceLogLevel log_level, > + GLogLevelFlags log_level, > const char *strloc, > const char *function, > const char *format, > va_list args) > { > GString *log_msg; > - GLogLevelFlags glib_level = spice_log_level_to_glib(log_level); > > - if ((glib_level & G_LOG_LEVEL_MASK) > glib_debug_level) { > + if ((log_level & G_LOG_LEVEL_MASK) > glib_debug_level) { > return; // do not print anything > } > > @@ -166,17 +173,17 @@ static void spice_logv(const char *log_domain, > if (format) { > g_string_append_vprintf(log_msg, format, args); > } > - g_log(log_domain, glib_level, "%s", log_msg->str); > + g_log(log_domain, log_level, "%s", log_msg->str); > g_string_free(log_msg, TRUE); > > - if (abort_level != -1 && abort_level >= (int) log_level) { > + if ((abort_mask & log_level) != 0) { > spice_backtrace(); > abort(); > } > } > > void spice_log(const char *log_domain, > - SpiceLogLevel log_level, > + GLogLevelFlags log_level, > const char *strloc, > const char *function, > const char *format, > diff --git a/common/log.h b/common/log.h > index 73432d7..1ea2313 100644 > --- a/common/log.h > +++ b/common/log.h > @@ -33,16 +33,8 @@ SPICE_BEGIN_DECLS > > #define SPICE_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) > > -typedef enum { > - SPICE_LOG_LEVEL_ERROR, > - SPICE_LOG_LEVEL_CRITICAL, > - SPICE_LOG_LEVEL_WARNING, > - SPICE_LOG_LEVEL_INFO, > - SPICE_LOG_LEVEL_DEBUG, > -} SpiceLogLevel; > - > void spice_log(const char *log_domain, > - SpiceLogLevel log_level, > + GLogLevelFlags log_level, > const char *strloc, > const char *function, > const char *format, > @@ -50,20 +42,20 @@ void spice_log(const char *log_domain, > > #define spice_return_if_fail(x) G_STMT_START { \ > if G_LIKELY(x) { } else { \ > - spice_log(SPICE_LOG_DOMAIN, SPICE_LOG_LEVEL_CRITICAL, SPICE_STRLOC, G_STRFUNC, "condition `%s' failed", #x); \ > + spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, SPICE_STRLOC, G_STRFUNC, "condition `%s' failed", #x); \ > return; \ > } \ > } G_STMT_END > > #define spice_return_val_if_fail(x, val) G_STMT_START { \ > if G_LIKELY(x) { } else { \ > - spice_log(SPICE_LOG_DOMAIN, SPICE_LOG_LEVEL_CRITICAL, SPICE_STRLOC, __FUNCTION__, "condition `%s' failed", #x); \ > + spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, SPICE_STRLOC, __FUNCTION__, "condition `%s' failed", #x); \ > return (val); \ > } \ > } G_STMT_END > > #define spice_warn_if_reached() G_STMT_START { \ > - spice_log(SPICE_LOG_DOMAIN, SPICE_LOG_LEVEL_WARNING, SPICE_STRLOC, __FUNCTION__, "should not be reached"); \ > + spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_WARNING, SPICE_STRLOC, __FUNCTION__, "should not be reached"); \ > } G_STMT_END > > #define spice_printerr(format, ...) G_STMT_START { \ > @@ -71,23 +63,23 @@ void spice_log(const char *log_domain, > } G_STMT_END > > #define spice_info(format, ...) G_STMT_START { \ > - spice_log(SPICE_LOG_DOMAIN, SPICE_LOG_LEVEL_INFO, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \ > + spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_INFO, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \ > } G_STMT_END > > #define spice_debug(format, ...) G_STMT_START { \ > - spice_log(SPICE_LOG_DOMAIN, SPICE_LOG_LEVEL_DEBUG, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \ > + spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \ > } G_STMT_END > > #define spice_warning(format, ...) G_STMT_START { \ > - spice_log(SPICE_LOG_DOMAIN, SPICE_LOG_LEVEL_WARNING, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \ > + spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_WARNING, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \ > } G_STMT_END > > #define spice_critical(format, ...) G_STMT_START { \ > - spice_log(SPICE_LOG_DOMAIN, SPICE_LOG_LEVEL_CRITICAL, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \ > + spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \ > } G_STMT_END > > #define spice_error(format, ...) G_STMT_START { \ > - spice_log(SPICE_LOG_DOMAIN, SPICE_LOG_LEVEL_ERROR, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \ > + spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_ERROR, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \ > } G_STMT_END > > #define spice_warn_if_fail(x) G_STMT_START { \ > -- > 2.9.4 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel