summaryrefslogtreecommitdiff
path: root/src/trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/trace.h')
-rw-r--r--src/trace.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/trace.h b/src/trace.h
new file mode 100644
index 0000000..64e883a
--- /dev/null
+++ b/src/trace.h
@@ -0,0 +1,30 @@
+#define trace(level, ...) vtrace(__FILE__, __func__, __LINE__, level, __VA_ARGS__)
+#define debug(...) vtrace(__FILE__, __func__, __LINE__, TraceLevel_DEBUG, __VA_ARGS__)
+#define info(...) vtrace(__FILE__, __func__, __LINE__, TraceLevel_INFO, __VA_ARGS__)
+#define warning(...) vtrace(__FILE__, __func__, __LINE__, TraceLevel_WARNING, __VA_ARGS__)
+#define error(...) vtrace(__FILE__, __func__, __LINE__, TraceLevel_ERROR, __VA_ARGS__)
+
+
+
+enum TraceLevel {
+ TraceLevel_NONE = 1,
+ TraceLevel_DEBUG = 2,
+ TraceLevel_INFO = 3,
+ TraceLevel_WARNING = 4,
+ TraceLevel_ERROR = 5,
+};
+
+
+
+void
+set_level(const enum TraceLevel level);
+
+int
+vtrace(
+ const char *const file,
+ const char *const function,
+ const int lineno,
+ const enum TraceLevel level,
+ const char *restrict format,
+ ...
+);