// LCZ libraries v0.1b #ifndef _LCZ_LOG_H_ #define _LCZ_LOG_H_ #include #define LOG_COLOR_RESET "\033[0m" #define LOG_COLOR_DEBUG "\033[1;92m" #define LOG_COLOR_INFO "\033[1;96m" #define LOG_COLOR_WARNING "\033[1;93m" #define LOG_COLOR_ERROR "\033[1;91m" #define LOG_PREFIX_DEBUG LOG_COLOR_DEBUG "DEBUG" LOG_COLOR_RESET #define LOG_PREFIX_INFO LOG_COLOR_INFO "INFO" LOG_COLOR_RESET #define LOG_PREFIX_WARNING LOG_COLOR_WARNING "WARNING" LOG_COLOR_RESET #define LOG_PREFIX_ERROR LOG_COLOR_ERROR "ERROR" LOG_COLOR_RESET #ifdef LOG_LEVEL_DEBUG #define LOG_LEVEL_INFO 1 #endif #ifdef LOG_LEVEL_INFO #define LOG_LEVEL_WARN 1 #endif #ifdef LOG_LEVEL_WARN #define LOG_LEVEL_ERROR 1 #endif #ifdef LOG_LEVEL_DEBUG #define LogDebug(FORMAT_STR, ...) fprintf(stderr, LOG_PREFIX_DEBUG " %s:%d: " FORMAT_STR "\n", __FILE__, __LINE__, ##__VA_ARGS__) #else #define LogDebug(...) ((void)0) #endif #ifdef LOG_LEVEL_INFO #define LogInfo(FORMAT_STR, ...) fprintf(stderr, LOG_PREFIX_INFO " %s:%d: " FORMAT_STR "\n", __FILE__, __LINE__, ##__VA_ARGS__) #else #define LogInfo(...) ((void)0) #endif #ifdef LOG_LEVEL_WARN #define LogWarning(FORMAT_STR, ...) fprintf(stderr, LOG_PREFIX_WARNING " %s:%d: " FORMAT_STR "\n", __FILE__, __LINE__, ##__VA_ARGS__) #else #define LogWarning(...) ((void)0) #endif #ifdef LOG_LEVEL_ERROR #define LogError(FORMAT_STR, ...) fprintf(stderr, LOG_PREFIX_ERROR " %s:%d: " FORMAT_STR "\n", __FILE__, __LINE__, ##__VA_ARGS__) #else #define LogError(...) ((void)0) #endif #endif