c带颜色输出代码 #defineDEBUG_ERR(fmt,args...)printf("\033[31m[%s:%d]:"#fmt"\033[0m\r\n",__func__,__LINE__,##args) #defineDEBUG_WARN(fmt,args...)printf("\033[33m[%s:%d]\033[0m"#fmt"\r\n",__func__,__LINE__,##args) #defineDEBUG_INFO(fmt,args...)printf("\033[...
color_black.color);printf("\r\n%s: %d",color_white.name,color_white.color);// 显示命令与对...
void log(const char *color,const char *fmt,...) { //打印文件信息,函数信息,设置打印颜色 printf("%s info >> file:%s; line:%d; fuction:%s :",color,__FILE__,__LINE__,__FUNCTION__); //获取参数... va_list list; //初始化参数 va_start(list,fmt); //打印参数 vprintf(fmt,list)...
log.h头文件内容: #ifndef LOG_H_#define LOG_H_#ifdef __cplusplusextern "C" {#endifenum LogLevel{ERROR = 1,WARN = 2,INFO = 3,DEBUG = 4,};void mylog1(const char* filename, int line, enum LogLevel level, const char* fmt, ...) __attribute__((format(printf,4,5)));#define ...
fmt "\n", \__FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__)#else#define LOG(fmt,...
va_start(args, fmt); vfprintf(stdout, fmt, args); va_end(args); } intmain(){ for(intlevel=NC_LOG_LEVEL_BEGIN+1; level<NC_LOG_LEVEL_END; level++) { nc_log(level,"test trace\n"); } return0; } 终端颜色输出的通用性 考虑到通用性,测试发现我的Win10的cmd已经默认支持ANSI颜色转义了...
注意: 是支持所有的C++标准库容器的,包括vector和string等等容器的直接打印,如 是可行的。但不要忘了链接 fmt 库。 上面的默认输出效果如下:(控制台内是带颜色的,文件就没有颜色了) 增加回调支持 如果你有统一的格式需求可以通过在最开始的Config中增加对应的回调函数,before对应的是基本格式打印之前的处理,end对应...
voidmylog1(constchar*filename,intline,enumLogLevellevel,constchar*fmt, ...) { if(level>LOGLEVEL) return; va_listarg_list; charbuf[1024]; memset(buf,0,1024); va_start(arg_list,fmt); vsnprintf(buf,1024,fmt,arg_list); chartime[32]={0}; ...
extern"C"{#endifenumLogLevel{ERROR=1,WARN=2,INFO=3,DEBUG=4,};voidmylog1(constchar*filename,int line,enumLogLevel level,constchar*fmt,...)__attribute__((format(printf,4,5)));#defineLog(level,format,...)mylog1(__FILE__,__LINE__,level,format,## __VA_ARGS__)#ifdef __cplusplus...
在这个例子中,我们展示了两种使用fmt参数的方法。在左图中,我们使用字符串'%.2f'来格式化标签,显示两位小数。在右图中,我们定义了一个自定义函数custom_fmt来格式化标签,在数值前添加了”Value:”前缀。 2.4 colors参数 colors参数用于设置标签的颜色。它可以是一个颜色字符串,也可以是一个颜色列表。