[libvirt] [PATCH 22/38] virlog: Split parsing and setting priority

Erik Skultety eskultet at redhat.com
Thu Mar 31 17:48:55 UTC 2016


Handling of outputs and filters has been changed in a way that splits
parsing and defining. Do the same thing for logging priority as well, this
however, doesn't need much of a preparation.
---
 src/util/virlog.c | 21 +++++++++------------
 tests/eventtest.c |  3 ++-
 2 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/src/util/virlog.c b/src/util/virlog.c
index 0116f56..9fe47fb 100644
--- a/src/util/virlog.c
+++ b/src/util/virlog.c
@@ -220,7 +220,9 @@ int
 virLogSetDefaultPriority(virLogPriority priority)
 {
     if ((priority < VIR_LOG_DEBUG) || (priority > VIR_LOG_ERROR)) {
-        VIR_WARN("Ignoring invalid log level setting.");
+        virReportError(VIR_ERR_INVALID_ARG,
+                       _("Failed to set logging priority, argument '%u' is "
+                         "invalid"), priority);
         return -1;
     }
     if (virLogInitialize() < 0)
@@ -1432,20 +1434,15 @@ virLogGetNbOutputs(void)
 int
 virLogParseDefaultPriority(const char *priority)
 {
-    int ret = -1;
-
     if (STREQ(priority, "1") || STREQ(priority, "debug"))
-        ret = virLogSetDefaultPriority(VIR_LOG_DEBUG);
+        return VIR_LOG_DEBUG;
     else if (STREQ(priority, "2") || STREQ(priority, "info"))
-        ret = virLogSetDefaultPriority(VIR_LOG_INFO);
+        return VIR_LOG_INFO;
     else if (STREQ(priority, "3") || STREQ(priority, "warning"))
-        ret = virLogSetDefaultPriority(VIR_LOG_WARN);
+        return VIR_LOG_WARN;
     else if (STREQ(priority, "4") || STREQ(priority, "error"))
-        ret = virLogSetDefaultPriority(VIR_LOG_ERROR);
-    else
-        VIR_WARN("Ignoring invalid log level setting");
-
-    return ret;
+        return VIR_LOG_ERROR;
+    return -1;
 }
 
 
@@ -1465,7 +1462,7 @@ virLogSetFromEnv(void)
 
     debugEnv = virGetEnvAllowSUID("LIBVIRT_DEBUG");
     if (debugEnv && *debugEnv)
-        virLogParseDefaultPriority(debugEnv);
+        virLogSetDefaultPriority(virLogParseDefaultPriority(debugEnv));
     debugEnv = virGetEnvAllowSUID("LIBVIRT_LOG_FILTERS");
     if (debugEnv && *debugEnv)
         virLogSetFilters(debugEnv);
diff --git a/tests/eventtest.c b/tests/eventtest.c
index c4be606..b6d12a5 100644
--- a/tests/eventtest.c
+++ b/tests/eventtest.c
@@ -311,7 +311,8 @@ mymain(void)
     if (virThreadInitialize() < 0)
         return EXIT_FAILURE;
     char *debugEnv = getenv("LIBVIRT_DEBUG");
-    if (debugEnv && *debugEnv && (virLogParseDefaultPriority(debugEnv) == -1)) {
+    if (debugEnv && *debugEnv &&
+        (virLogSetDefaultPriority(virLogParseDefaultPriority(debugEnv)) < 0)) {
         fprintf(stderr, "Invalid log level setting.\n");
         return EXIT_FAILURE;
     }
-- 
2.4.3




More information about the libvir-list mailing list