为了调试的时候更加方便的区分哪些log是info,哪些是warning,哪些是error,于是将printf包装一下,使其能够带颜色输出,具体代码如下:
#include <stdio.h>
#define TEXT(x) #x
#define PRINTF_INFO(x) \
printf(#x "[%s: %s() => line: %d] ", __FILE__, __func__, __LINE__);
#define LOGINFO(...) \
PRINTF_INFO(\33[32m); \
printf(__VA_ARGS__); \
printf(TEXT(\33[37m))
#define LOGWARN(...) \
PRINTF_INFO(\33[33m); \
printf(__VA_ARGS__); \
printf(TEXT(\33[37m))
#define LOGERROR(...) \
PRINTF_INFO(\33[31m); \
printf(__VA_ARGS__); \
printf(TEXT(\33[37m))
int main()
{
LOGINFO("this's log info\n");
LOGWARN("this's log warning\n");
LOGERROR("this's log error\n");
}