12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #ifndef CORE_LOGGER_HPP
- #define CORE_LOGGER_HPP
- #include <stdio.h>
- #include "core/utils/Check.h"
- #define CORE_TERMINAL_RED "\33[1;31m"
- #define CORE_TERMINAL_YELLOW "\33[1;33m"
- #define CORE_TERMINAL_GRAY "\33[1;37m"
- #define CORE_TERMINAL_GREEN "\33[1;32m"
- #define CORE_TERMINAL_RESET "\33[0m"
- typedef enum {
- LOG_LEVEL_ERROR,
- LOG_LEVEL_WARNING,
- LOG_LEVEL_INFO,
- LOG_LEVEL_DEBUG
- } Logger_Level;
- extern Logger_Level logLevel;
- const char* Logger_getShortFileName(const char* s);
- check_format(6, 7) void Logger_log(Logger_Level l, const char* file, int line,
- const char* prefix, const char* tag,
- const char* format, ...);
- #if defined(CORE_LOG_LEVEL) && CORE_LOG_LEVEL >= 1
- #define CORE_LOG_ERROR(...) \
- Logger_log(LOG_LEVEL_ERROR, __FILE__, __LINE__, CORE_TERMINAL_RED, \
- "[ERROR] ", __VA_ARGS__);
- #else
- #define CORE_LOG_ERROR(...)
- #endif
- #if defined(CORE_LOG_LEVEL) && CORE_LOG_LEVEL >= 2
- #define CORE_LOG_WARNING(...) \
- Logger_log(LOG_LEVEL_WARNING, __FILE__, __LINE__, CORE_TERMINAL_YELLOW, \
- "[WARNING] ", __VA_ARGS__);
- #else
- #define CORE_LOG_WARNING(...)
- #endif
- #if defined(CORE_LOG_LEVEL) && CORE_LOG_LEVEL >= 3
- #define CORE_LOG_INFO(...) \
- Logger_log(LOG_LEVEL_INFO, __FILE__, __LINE__, CORE_TERMINAL_GRAY, \
- "[INFO] ", __VA_ARGS__);
- #else
- #define CORE_LOG_INFO(...)
- #endif
- #if defined(CORE_LOG_LEVEL) && CORE_LOG_LEVEL >= 4
- #define CORE_LOG_DEBUG(...) \
- Logger_log(LOG_LEVEL_DEBUG, __FILE__, __LINE__, CORE_TERMINAL_GREEN, \
- "[DEBUG] ", __VA_ARGS__);
- #else
- #define CORE_LOG_DEBUG(...)
- #endif
- #endif
|