summaryrefslogtreecommitdiff
path: root/lib/log.h
diff options
context:
space:
mode:
authorJoel Stålnacke <joel@saker.fi>2024-10-13 14:32:14 +0300
committerJoel Stålnacke <joel@saker.fi>2024-10-13 14:32:14 +0300
commit11b2cfa087f5de09b97eb42fb219f563886f6d40 (patch)
tree215a8e65edc0b74a47da63a0c8230b8eadba060f /lib/log.h
parent53a1cdf5bee2955995dfbf441f5354d1dcfc1e0c (diff)
Add libdjup logging
Diffstat (limited to 'lib/log.h')
-rw-r--r--lib/log.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/log.h b/lib/log.h
new file mode 100644
index 0000000..e1cdcb8
--- /dev/null
+++ b/lib/log.h
@@ -0,0 +1,23 @@
+#include <stdio.h>
+
+enum { LOGL_TRACE, LOGL_DEBUG, LOGL_INFO, LOGL_WARN, LOGL_ERROR, LOGL_FATAL };
+
+/*
+ * log_info("Hello %s!", "World");
+ * log_warn("warning");
+ */
+#define log_trace(...) dp_log_write(LOGL_TRACE, __FILE__, __LINE__, __VA_ARGS__)
+#define log_debug(...) dp_log_write(LOGL_DEBUG, __FILE__, __LINE__, __VA_ARGS__)
+#define log_info(...) dp_log_write(LOGL_INFO, __FILE__, __LINE__, __VA_ARGS__)
+#define log_warn(...) dp_log_write(LOGL_WARN, __FILE__, __LINE__, __VA_ARGS__)
+#define log_error(...) dp_log_write(LOGL_ERROR, __FILE__, __LINE__, __VA_ARGS__)
+#define log_fatal(...) dp_log_write(LOGL_FATAL, __FILE__, __LINE__, __VA_ARGS__)
+
+void dp_log_set_output(void (*)(int level, const char *source, int line, const char *msg));
+
+/*
+ * Sets the minimum log level. Level is inclusive.
+ */
+void dp_log_set_level(int level);
+
+void dp_log_write(int level, const char *source, int line, const char *fmt, ...);