log函数定义
#if 1
#define LOG(format, ...) printf("\r\n[%s:%s:%d] "format"", __FILE__, __func__,__LINE__, ##__VA_ARGS__)
#else
#define mydebug(format, ...)
#endif
这里直接使用了printf函数,这个函数怎么实现,可以百度到。
__LINE__:在源代码中插入当前源代码行号
__FILE__:在源文件中插入当前源文件名
__DATE__:在源文件中插入当前的编译日期
__TIME__:在源文件中插入当前编译时间
__func__:在源代码中插入当前函数名
__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1
__cplusplus: 当编写C++程序时该标识符被定义
这些是用到的预编译的指令可以定位到函数的位置,便于调试
下面是效果图:
可以看到打印出的函数文件和具体的函数名和行号
同样在现实中也可以设置显示的颜色等
如设置为
printf("\033[0m\033[40m\033[31mflash_data_block.data_type 0x%x\033[0m",count);
显示如下:
/*
格式如下:
printf("\033[字背景颜色;字体颜色m 字符串 \033[0m" );
例子:
printf("\033[1m\033[45;33m HELLO_WORLD \033[0m\n");
printf("\033[40 HELLO_WORLD \033[0m\n");
颜色代码: QUOTE:
字背景颜色范围: 40--49 字颜色: 30—39
40: 黑 30: 黑
41: 红 31: 红
42: 绿 32: 绿
43: 黄 33: 黄
44: 蓝 34: 蓝
45: 紫 35: 紫
46: 深绿 36: 深绿
47: 白色 37: 白色
ANSI控制码:
QUOTE:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- \033[37m 设置前景色
\033[40m -- \033[47m 设置背景色
\033[nA 光标上移n行
\03[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
*/
我使用的日志工具是,SecureCRT 7.3,在使用的时候要这样设置SecureCRT设置:Options -> Session Options -> Terminal -> Emulation -> ANSI Color 选中就可以了。