This repository has been archived on 2023-11-05. You can view files and clone it, but cannot push or open issues or pull requests.
wrt/utils/log.h

54 lines
1.4 KiB
C

#ifndef WRT_LOG_H
#define WRT_LOG_H
#if WRT_DEBUG > 0
#include <stdio.h>
#define _COLOR_RED "\x1B[1;31m"
#define _COLOR_YELLOW "\x1B[1;33m"
#define _COLOR_GREEN "\x1B[1;32m"
#define _COLOR_CYAN "\x1B[1;36m"
#define _COLOR_RESET "\x1B[0m"
#define _LOG(color, level, fmt, ...) \
do { \
fprintf(stdout, color "[" level "] (%s:%d): " fmt _COLOR_RESET "\n", __FILE__, \
__LINE__, ##__VA_ARGS__); \
} while (0)
#define LOG_ERR(fmt, ...) _LOG(_COLOR_RED, "E", fmt, ##__VA_ARGS__)
#define LOG_WARN(fmt, ...) _LOG(_COLOR_YELLOW, "W", fmt, ##__VA_ARGS__)
#define LOG_INFO(fmt, ...) _LOG(_COLOR_GREEN, "I", fmt, ##__VA_ARGS__)
#define LOG_DBG(fmt, ...) _LOG(_COLOR_CYAN, "D", fmt, ##__VA_ARGS__)
#if WRT_DEBUG == 1
#undef LOG_DBG
#undef LOG_INFO
#undef LOG_WARN
#elif WRT_DEBUG == 2
#undef LOG_DBG
#undef LOG_INFO
#elif WRT_DEBUG == 3
#undef LOG_DBG
#endif
#endif
#ifndef LOG_ERR
#define LOG_ERR(fmt, ...)
#endif
#ifndef LOG_WARN
#define LOG_WARN(fmt, ...)
#endif
#ifndef LOG_INFO
#define LOG_INFO(fmt, ...)
#endif
#ifndef LOG_DBG
#define LOG_DBG(fmt, ...)
#endif
#endif // WRT_LOG_H