[Spice-commits] common/log.c common/log.h

Frediano Ziglio fziglio at kemper.freedesktop.org
Fri Jun 9 08:46:53 UTC 2017


 common/log.c |   35 +++++++++++++++++++++--------------
 common/log.h |   26 +++++++++-----------------
 2 files changed, 30 insertions(+), 31 deletions(-)

New commits:
commit 1d7acdcf57ef61931656ba70862a46b3c718cfa8
Author: Frediano Ziglio <fziglio at redhat.com>
Date:   Thu Jun 8 14:03:49 2017 +0100

    log: Use GLib logging levels directly
    
    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 at redhat.com>
    Acked-by: Christophe Fergeau <cfergeau at redhat.com>

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 {            \


More information about the Spice-commits mailing list