diff options
Diffstat (limited to 'lib/include/log.h')
| -rw-r--r-- | lib/include/log.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/include/log.h b/lib/include/log.h new file mode 100644 index 0000000..a8549e0 --- /dev/null +++ b/lib/include/log.h @@ -0,0 +1,52 @@ +#include <stdio.h> +#include <stdarg.h> + +#define LOG_TRACE 0u +#define LOG_DEBUG 1u +#define LOG_INFO 2u +#define LOG_WARN 3u +#define LOG_ERROR 4u + +void vl_log_setlevel(unsigned level); + +void vl_logv(unsigned level, const char *fmt, va_list args); +void vl_log(unsigned level, const char *fmt, ...) __attribute__((format(printf, 2, 3))); + +#ifndef LOG_MIN_LEVEL +#define LOG_MIN_LEVEL LOG_TRACE +#endif + +#if LOG_TRACE >= LOG_MIN_LEVEL +#define LOG_TRACE_ENABLED +#define vl_trace(...) vl_log(LOG_TRACE, __VA_ARGS__) +#define vl_tracev(...) vl_logv(LOG_TRACE, __VA_ARGS__) +#else +#define vl_trace(...) +#define vl_tracev(...) +#endif + +#if LOG_DEBUG >= LOG_MIN_LEVEL +#define LOG_DEBUG_ENABLED +#define vl_debug(...) vl_log(LOG_DEBUG, __VA_ARGS__) +#define vl_debugv(...) vl_logv(LOG_DEBUG, __VA_ARGS__) +#else +#define vl_debug(...) +#define vl_debugv(...) +#endif + +#if LOG_INFO >= LOG_MIN_LEVEL +#define LOG_INFO_ENABLED +#define vl_info(...) vl_log(LOG_INFO, __VA_ARGS__) +#define vl_infov(...) vl_logv(LOG_INFO, __VA_ARGS__) +#else +#define vl_info(...) +#define vl_infov(...) +#endif + +#define LOG_WARN_ENABLED +#define vl_warn(...) vl_log(LOG_WARN, __VA_ARGS__) +#define vl_warnv(...) vl_logv(LOG_WARN, __VA_ARGS__) + +#define LOG_ERROR_ENABLED +#define vl_error(...) vl_log(LOG_ERROR, __VA_ARGS__) +#define vl_errorv(...) vl_logv(LOG_ERROR, __VA_ARGS__) |
