aboutsummaryrefslogtreecommitdiff
path: root/lib/fuse_log.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/fuse_log.c')
-rw-r--r--lib/fuse_log.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/fuse_log.c b/lib/fuse_log.c
new file mode 100644
index 0000000..0d268ab
--- /dev/null
+++ b/lib/fuse_log.c
@@ -0,0 +1,40 @@
+/*
+ FUSE: Filesystem in Userspace
+ Copyright (C) 2019 Red Hat, Inc.
+
+ Logging API.
+
+ This program can be distributed under the terms of the GNU LGPLv2.
+ See the file COPYING.LIB
+*/
+
+#include "fuse_log.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+
+static void default_log_func(
+ __attribute__(( unused )) enum fuse_log_level level,
+ const char *fmt, va_list ap)
+{
+ vfprintf(stderr, fmt, ap);
+}
+
+static fuse_log_func_t log_func = default_log_func;
+
+void fuse_set_log_func(fuse_log_func_t func)
+{
+ if (!func)
+ func = default_log_func;
+
+ log_func = func;
+}
+
+void fuse_log(enum fuse_log_level level, const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ log_func(level, fmt, ap);
+ va_end(ap);
+}