@@ -749,4 +749,16 @@ int tep_filter_copy(struct tep_event_filter *dest, struct tep_event_filter *sour
int tep_filter_compare(struct tep_event_filter *filter1, struct tep_event_filter *filter2);
+/* Control library logs */
+enum tep_loglevel {
+ TEP_LOG_NONE = 0,
+ TEP_LOG_CRITICAL,
+ TEP_LOG_ERROR,
+ TEP_LOG_WARNING,
+ TEP_LOG_INFO,
+ TEP_LOG_DEBUG,
+ TEP_LOG_ALL
+};
+void tep_set_loglevel(enum tep_loglevel level);
+
#endif /* _PARSE_EVENTS_H */
@@ -9,8 +9,21 @@
#include <stdarg.h>
#include <errno.h>
+#include "event-parse.h"
+
#define __weak __attribute__((weak))
+static int log_level = TEP_LOG_CRITICAL;
+
+/**
+ * tep_set_loglevel - set log level of the library
+ * @level: desired level of the library messages
+ */
+void tep_set_loglevel(enum tep_loglevel level)
+{
+ log_level = level;
+}
+
int __weak tep_vwarning(const char *name, const char *fmt, va_list ap)
{
int ret = errno;
@@ -29,6 +42,9 @@ void __weak tep_warning(const char *fmt, ...)
{
va_list ap;
+ if (log_level < TEP_LOG_WARNING)
+ return;
+
va_start(ap, fmt);
tep_vwarning("libtraceevent", fmt, ap);
va_end(ap);
Defined levels of the library logs and new API to set the desired log level. By default, only critical logs are enabled. Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com> --- src/event-parse.h | 12 ++++++++++++ src/parse-utils.c | 16 ++++++++++++++++ 2 files changed, 28 insertions(+)