printf打印模块
用#define将printf做成属于自己的便于log信息 的开启和关闭。避免开发中的打印信息一个一个去屏蔽然后再出最终的正式软件
#include <stdio.h>
#define COLOR_NONE "\033[0;m"
#define RED "\033[0;31m"
#define LIGHT_RED "\033[1;31m"
#define LIGHT_RED_INV "\033[5;7;31m"
#define GREEN "\033[0;32m"
#define LIGHT_GREEN "\033[1;32m"
#define BLUE "\033[0;34m"
#define LIGHT_BLUE "\033[1;34m"
#define DARY_GRAY "\033[1;30m"
#define CYAN "\033[0;36m"
#define LIGHT_CYAN "\033[1;36m"
#define PURPLE "\033[0;35m"
#define LIGHT_PURPLE "\033[1;35m"
#define YELLOW "\033[0;33m"
#define LIGHT_YELLOW "\033[1;33m"
#define WHITE "\033[0;37m"
#define LIGHT_WHITE "\033[1;37m"
enum _LOG_LEVEL {
LOGMES_FATAL_LEVEL = 1, //致命错误
LOGMES_ERROR_LEVEL, //普通错误
LOGMES_WARN_LEVEL, //警告
LOGMES_INFO_LEVEL, //显示信息
LOGMES_DEBUG_LEVEL, //调试信息
};
#define LOGMES_CFG_LEVEL LOGMES_DEBUG_LEVEL
#define logmes_level_printf(level,fmt,arg...) \
do {\
if (level <= LOGMES_CFG_LEVEL){\
printf("[%s,%d] "fmt, __FILE__, __LINE__, ##arg);\
}\
} while(0)
//致命错误 fatal级别的日志使用 “高亮红色输出,并且反色输出,同时字体间隙闪烁”
#define logmes_fatal(fmt, arg...) logmes_level_printf(LOGMES_FATAL_LEVEL, LIGHT_RED_INV fmt COLOR_NONE, ##arg)
//普通错误 error级别的日志使用 “高亮红色输出”;
#define logmes_error(fmt, arg...) logmes_level_printf(LOGMES_ERROR_LEVEL, LIGHT_RED fmt COLOR_NONE, ##arg)
//警告 warn级别的日志使用 “高亮黄色输出”;
#define logmes_warn(fmt, arg...) logmes_level_printf(LOGMES_WARN_LEVEL, LIGHT_YELLOW fmt COLOR_NONE, ##arg)
//信息 info级别的日志使用 “高亮蓝色输出”;
#define logmes_info(fmt, arg...) logmes_level_printf(LOGMES_INFO_LEVEL, LIGHT_BLUE fmt COLOR_NONE, ##arg)
//调试 debug级别的日志使用 “高亮白色输出”;
#define logmes_debug(fmt, arg...) logmes_level_printf(LOGMES_DEBUG_LEVEL, LIGHT_WHITE fmt COLOR_NONE, ##arg)
int main()
{
logmes_fatal("this is test fatal\r\n");
logmes_error("this is test error\r\n");
logmes_warn("this is test warn\r\n");
logmes_info("this is test info\r\n");
logmes_debug("this is test debug\r\n");
return 0;
}
写完可以用Ubuntu验证一下