1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #ifndef CORE_LOGGER_H
- #define CORE_LOGGER_H
- #include "core/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 {
- CORE_LOG_NONE,
- CORE_LOG_ERROR,
- CORE_LOG_WARNING,
- CORE_LOG_INFO,
- CORE_LOG_DEBUG
- } CoreLogLevel;
- extern CoreLogLevel coreLogLevel;
- const char* coreGetShortFileName(const char* s);
- check_format(6, 7) void coreLog(CoreLogLevel 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(...) \
- coreLog(CORE_LOG_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(...) \
- coreLog(CORE_LOG_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(...) \
- coreLog(CORE_LOG_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(...) \
- coreLog(CORE_LOG_DEBUG, __FILE__, __LINE__, CORE_TERMINAL_GREEN, \
- "[DEBUG] ", __VA_ARGS__)
- #else
- #define CORE_LOG_DEBUG(...)
- #endif
- #ifdef IMPORT_CORE
- #define TERMINAL_RED CORE_TERMINAL_RED
- #define TERMINAL_YELLOW CORE_TERMINAL_YELLOW
- #define TERMINAL_GRAY CORE_TERMINAL_GRAY
- #define TERMINAL_GREEN CORE_TERMINAL_GREEN
- #define TERMINAL_RESET CORE_TERMINAL_RESET
- #define LogLevel CoreLogLevel
- #define LOG_NONE CORE_LOG_NONE
- #define LOG_ERROR CORE_LOG_ERROR
- #define LOG_WARNING CORE_LOG_WARNING
- #define LOG_INFO CORE_LOG_INFO
- #define LOG_DEBUG CORE_LOG_DEBUG
- #define logLevel coreLogLevel
- #define getShortFileName coreGetShortFileName
- #define LOG_ERROR CORE_LOG_ERROR
- #define LOG_WARNING CORE_LOG_WARNING
- #define LOG_INFO CORE_LOG_INFO
- #define LOG_DEBUG CORE_LOG_DEBUG
- #endif
- #endif
|