diff options
Diffstat (limited to 'src/trace.h')
-rw-r--r-- | src/trace.h | 30 |
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, + ... +); |