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(-) diff --git a/common/log.c b/common/log.c index 7437d3e..14b1c1c 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_levels = -1; -#ifndef SPICE_ABORT_LEVEL_DEFAULT +#ifndef SPICE_ABORT_LEVELS_DEFAULT #ifdef SPICE_DISABLE_ABORT -#define SPICE_ABORT_LEVEL_DEFAULT -1 +#define SPICE_ABORT_LEVELS_DEFAULT 0 #else -#define SPICE_ABORT_LEVEL_DEFAULT SPICE_LOG_LEVEL_CRITICAL +#define SPICE_ABORT_LEVELS_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_levels == -1) { 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_levels = fatal_mask; g_log_set_fatal_mask(SPICE_LOG_DOMAIN, fatal_mask); } else { - abort_level = SPICE_ABORT_LEVEL_DEFAULT; + abort_levels = SPICE_ABORT_LEVELS_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_levels != -1 && (abort_levels & 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