]> xenbits.xensource.com Git - libvirt.git/commitdiff
virlog: Introduce virLogSetFilters
authorErik Skultety <eskultet@redhat.com>
Thu, 24 Mar 2016 13:34:11 +0000 (14:34 +0100)
committerErik Skultety <eskultet@redhat.com>
Mon, 10 Oct 2016 06:27:25 +0000 (08:27 +0200)
This method will eventually replace virLogParseAndDefineFilters which
currently does both parsing and defining.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
src/libvirt_private.syms
src/util/virlog.c
src/util/virlog.h

index 77fda3cab782fef87272716d56ade957a4398f04..342e78655db65c03335d01def3b28533af581d76 100644 (file)
@@ -1898,6 +1898,7 @@ virLogPriorityFromSyslog;
 virLogProbablyLogMessage;
 virLogReset;
 virLogSetDefaultPriority;
+virLogSetFilters;
 virLogSetFromEnv;
 virLogSetOutputs;
 virLogUnlock;
index 377a7c1c629419ae76e18a17a56f454f781d6ecb..0444155bba51b2dba669a2600d7c4ee350478fb8 100644 (file)
@@ -2180,3 +2180,35 @@ virLogSetOutputs(const char *src)
     virLogOutputListFree(outputs, noutputs);
     return ret;
 }
+
+
+/**
+ * virLogSetFilters:
+ * @src: string defining a (set of) filter(s)
+ *
+ * Replaces the current set of defined filters with a new set of filters.
+ *
+ * Returns 0 on success or -1 in case of an error.
+ */
+int
+virLogSetFilters(const char *src)
+{
+    int ret = -1;
+    int nfilters = 0;
+    virLogFilterPtr *filters = NULL;
+
+    if (virLogInitialize() < 0)
+        return -1;
+
+    if (src && (nfilters = virLogParseFilters(src, &filters)) < 0)
+        goto cleanup;
+
+    if (virLogDefineFilters(filters, nfilters) < 0)
+        goto cleanup;
+
+    filters = NULL;
+    ret = 0;
+ cleanup:
+    virLogFilterListFree(filters, nfilters);
+    return ret;
+}
index f3b8f8b63f35bb1ceafa33c700017bea9b3522cd..58a392b2c0a030d289c16d43462bf0686631e481 100644 (file)
@@ -198,6 +198,7 @@ void virLogOutputListFree(virLogOutputPtr *list, int count);
 void virLogFilterFree(virLogFilterPtr filter);
 void virLogFilterListFree(virLogFilterPtr *list, int count);
 int virLogSetOutputs(const char *outputs) ATTRIBUTE_NONNULL(1);
+int virLogSetFilters(const char *filters);
 
 /*
  * Internal logging API