一、颜色对应表
字/字背景 颜色 | 字颜色数字 | 字背景颜色数字 |
---|---|---|
黑 | 30 | 40 |
红 | 31 | 41 |
绿 | 32 | 42 |
黄 | 33 | 43 |
蓝 | 34 | 44 |
紫 | 35 | 45 |
深绿 | 36 | 46 |
白 | 37 | 47 |
ANSII控制码的说明:
- \033[0m: 关闭所有属性
- \033[1m: 设置高亮度
- \033[2m:淡色
- \033[3m:斜体
- \033[4m: 下划线
- \033[5m:闪烁
- \033[7m:反显(交换前景色和背景色)
二、示例代码
//public_debug_color.h
#ifndef _PUBLIC_DEBUG_H_
#define _PUBLIC_DEBUG_H_
#include <stdio.h>
//颜色格式:"\033[背景颜色;字体颜色m字符串\033[0m"
#define OPEN_COLOR "\033[1m"
#define FONT_COLOR_BLACK "\033[30m"
#define FONT_COLOR_RED "\033[31m"
#define FONT_COLOR_GREEN "\033[32m"
#define FONT_COLOR_YELLOW "\033[33m"
#define BACKGROUND_COLOR_BLACK "\033[40;37m"
#define BACKGROUND_COLOR_RED "\033[41;37m"
#define BACKGROUND_COLOR_GREEN "\033[42;37m"
#define BACKGROUND_COLOR_YELLOW "\033[43;37m"
#define CLOSE_COLOR "\033[0m"
#define LOG_INFO_EN
#define LOG_ERROR_EN
#define LOG_WARNING_EN
#define LOG_RIGHT_EN
#ifdef LOG_INFO_EN
#define log_info(fmt, arg...) do{ \
printf(OPEN_COLOR FONT_COLOR_BLACK "[log_info]" CLOSE_COLOR "%s,%s():%d," fmt "\n",__FILE__, __FUNCTION__, __LINE__, ##arg); \
fflush(stdout); \
}while(0)
#else
#define log_info(fmt, arg...)
#endif
#ifdef LOG_ERROR_EN
#define log_error(fmt, arg...) do{ \
printf(OPEN_COLOR FONT_COLOR_RED "[log_error]" CLOSE_COLOR "%s,%s():%d," fmt "\n",__FILE__, __FUNCTION__, __LINE__, ##arg); \
fflush(stdout); \
}while(0)
#else
#define log_error(fmt, arg...)
#endif
#ifdef LOG_WARNING_EN
#define log_warning(fmt, arg...) do{ \
printf(OPEN_COLOR FONT_COLOR_YELLOW "[log_warning]" CLOSE_COLOR "%s,%s():%d," fmt "\n",__FILE__, __FUNCTION__, __LINE__, ##arg); \
fflush(stdout); \
}while(0)
#else
#define log_warning(fmt, arg...)
#endif
#ifdef LOG_RIGHT_EN
#define log_right(fmt, arg...) do{ \
printf(OPEN_COLOR FONT_COLOR_GREEN "[log_right]" CLOSE_COLOR "%s,%s():%d," fmt "\n",__FILE__, __FUNCTION__, __LINE__, ##arg); \
fflush(stdout); \
}while(0)
#else
#define log_right(fmt, arg...)
#endif
#endif
//test.c
#include "public_debug_color.h"
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 10;
log_info("a = %d", a);
log_info("finish main()");
log_error("a = %d", a);
log_error("finish main()");
log_warning("a = %d", a);
log_warning("finish main()");
log_right("a = %d", a);
log_right("finish main()");
return 0;
}
相关代码已通过调试。