/* * Created by yuuta on 1/1/22. */ #ifndef LOG_H #define LOG_H enum log_level { log_fetal = 1, log_error = 2, log_warn = 3, log_info = 4, log_debug = 5 }; void g_log(enum log_level level, const char *file, int line, const char *format, ...); #define LOGF(X) g_log(log_fetal, __FUNCTION__, __LINE__, X) #define LOGFV(X, ...) g_log(log_fetal, __FUNCTION__, __LINE__, X, __VA_ARGS__) #define LOGE(X) g_log(log_error, __FUNCTION__, __LINE__, X) #define LOGEV(X, ...) g_log(log_error, __FUNCTION__, __LINE__, X, __VA_ARGS__) #define LOGW(X) g_log(log_warn, __FUNCTION__, __LINE__, X) #define LOGWV(X, ...) g_log(log_warn, __FUNCTION__, __LINE__, X, __VA_ARGS__) #define LOGI(X) g_log(log_info, __FUNCTION__, __LINE__, X) #define LOGIV(X, ...) g_log(log_info, __FUNCTION__, __LINE__, X, __VA_ARGS__) #ifdef DEBUG #define LOGD(X) g_log(log_debug, __FUNCTION__, __LINE__, X) #define LOGDV(X, ...) g_log(log_debug, __FUNCTION__, __LINE__, X, __VA_ARGS__) #else #define LOGD(X) #define LOGDV(X, ...) #endif #endif /* LOG_H */