From 41ed1718eaa0eb1fa59bfd5f9d0d07995df8ec6f Mon Sep 17 00:00:00 2001 From: Luca Conte Date: Thu, 6 Mar 2025 01:29:56 +0100 Subject: [PATCH] add logger --- src/log.c | 3 +++ src/log.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/log.c create mode 100644 src/log.h diff --git a/src/log.c b/src/log.c new file mode 100644 index 0000000..b153b09 --- /dev/null +++ b/src/log.c @@ -0,0 +1,3 @@ +#include "log.h" + +unsigned int logLevel = LOG_LEVEL_ERROR; \ No newline at end of file diff --git a/src/log.h b/src/log.h new file mode 100644 index 0000000..df86aa2 --- /dev/null +++ b/src/log.h @@ -0,0 +1,31 @@ +#ifndef LOG_H +#define LOG_H + +#include +#include +#include + +#define LOG_LEVEL_NONE 0 +#define LOG_LEVEL_FATAL 1 +#define LOG_LEVEL_ERROR 2 +#define LOG_LEVEL_WARN 3 +#define LOG_LEVEL_INFO 4 +#define LOG_LEVEL_DEBUG 5 + +extern unsigned int logLevel; + +// Logging macros +#define FATAL_COL "\x1B[4;31m" +#define ERROR_COL "\x1B[91m" +#define WARN_COL "\x1B[33m" +#define INFO_COL "\x1B[34m" +#define DEBUG_COL "\x1B[90m" +#define NORMAL_COL "\x1B[0m" + +#define FATAL(...) if (logLevel >= LOG_LEVEL_FATAL) { printf("| %sFATAL%s | ", FATAL_COL, NORMAL_COL); printf(__VA_ARGS__); } +#define ERROR(...) if (logLevel >= LOG_LEVEL_ERROR) { printf("| %sERROR%s | ", ERROR_COL, NORMAL_COL); printf(__VA_ARGS__); } +#define WARN(...) if (logLevel >= LOG_LEVEL_WARN) { printf("| %sWARN%s | ", WARN_COL, NORMAL_COL); printf(__VA_ARGS__); } +#define INFO(...) if (logLevel >= LOG_LEVEL_INFO) { printf("| %sINFO%s | ", INFO_COL, NORMAL_COL); printf(__VA_ARGS__); } +#define DEBUG(...) if (logLevel >= LOG_LEVEL_DEBUG) { printf("| %sDEBUG%s | ", DEBUG_COL, NORMAL_COL); printf(__VA_ARGS__); } + +#endif // LOG_H \ No newline at end of file