This method will eventually replace the existing virLogParseFilters which
currently does both parsing and defining. However, each method should do one
thing only, so will the current virLogParseFilters method will be split into
parsing and defining, only to be swallowed by the entry-point API
virLogSetFilters.
---
src/libvirt_private.syms | 1 +
src/util/virlog.c | 23 +++++++++++++++++++++++
src/util/virlog.h | 1 +
3 files changed, 25 insertions(+)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 684f06c..bd3f72d 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1757,6 +1757,7 @@ virLogPriorityFromSyslog;
virLogProbablyLogMessage;
virLogReset;
virLogSetDefaultPriority;
+virLogSetFilters;
virLogSetFromEnv;
virLogUnlock;
virLogVMessage;
diff --git a/src/util/virlog.c b/src/util/virlog.c
index b893365..0aa722d 100644
--- a/src/util/virlog.c
+++ b/src/util/virlog.c
@@ -1493,3 +1493,26 @@ bool virLogProbablyLogMessage(const char *str)
ret = true;
return ret;
}
+
+
+/**
+ * virLogSetFilters:
+ * @filters: string defining a (set of) filter(s)
+ *
+ * Replaces the current set of defined filters with a new set of filters.
+ *
+ * Returns the number of filters successfully defined or -1 in case of an
+ * error.
+ */
+int
+virLogSetFilters(const char *filters)
+{
+ int ret = -1;
+
+ if (virLogInitialize() < 0)
+ return -1;
+
+ ret = virLogParseFilters(filters);
+
+ return ret;
+}
diff --git a/src/util/virlog.h b/src/util/virlog.h
index 36c610b..4d7cc98 100644
--- a/src/util/virlog.h
+++ b/src/util/virlog.h
@@ -183,6 +183,7 @@ extern char *virLogGetOutputs(void);
extern virLogPriority virLogGetDefaultPriority(void);
extern int virLogSetDefaultPriority(virLogPriority priority);
extern void virLogSetFromEnv(void);
+extern int virLogSetFilters(const char *filters);
extern int virLogDefineFilter(const char *match,
virLogPriority priority,
unsigned int flags);
--
2.4.3