linux 开发 log,Linux编程之定制带级别的log

printf("\033[46;31m[%s:%d]\033[0m "#fmt" errno=%d, %m\r\n", __func__, __LINE__, ##args, errno, errno);

上面printf时在Linux命令行下打印出带颜色的字体,方便一眼区分不同种类的调试信息,只需要加上一些颜色代码,例如:这里的46代表底色, 31代表字体的颜色。

使用ascii code 是对颜色调用的始末格式如下:

\033[ ; m …… \033[0m

后面哪个 ”\033[0m” 是对前面哪个颜色载入的结束,恢复到终端原来的背景色和字体色,可以把后面哪个修改成如下试试:

#define DEBUG_ERR(fmt, args...) printf("\033[46;31m[%s:%d]\033[40;37m "#fmt" errno=%d, %m\r\n", __func__, __LINE__, ##args, errno, errno);

下面列出ascii code 的颜色值:

字背景颜色范围:40----49                           字颜色:30-----------39

40:黑30:黑

41:深红31:红

42:绿32:绿

43:黄色33:黄

44:蓝色34:蓝色

45:紫色35:紫色

46:深绿36:深绿

47:白色37:白色

记忆颜色格式太麻烦了,我们将它搞成宏定义吧,这样以后用起来就方便得多。

#define NONE "\e[0m"

#define BLACK "\e[0;30m"

#define L_BLACK "\e[1;30m"

#define RED "\e[0;31m"

#define L_RED "\e[1;31m"

#define GREEN "\e[0;32m"

#define L_GREEN "\e[1;32m"

#define BROWN "\e[0;33m"

#define YELLOW "\e[1;33m"

#define BLUE "\e[0;34m"

#define L_BLUE "\e[1;34m"

#define PURPLE "\e[0;35m"

#define L_PURPLE "\e[1;35m"

#define CYAN "\e[0;36m"

#define L_CYAN "\e[1;36m"

#define GRAY "\e[0;37m"

#define WHITE "\e[1;37m"

#define BOLD "\e[1m"

#define UNDERLINE "\e[4m"

#define BLINK "\e[5m"

#define REVERSE "\e[7m"

#define HIDE "\e[8m"

#define CLEAR "\e[2J"

#define CLRLINE "\r\e[K" //or "\e[1K\r"

#define DEBUG_ERROR(fmt, args...) do{ \printf(RED"[%s]:"NONE, __FUNCTION__); \

printf(fmt, ##args); \

}while(0);

效果:

47b334e6db9374f36581ac3ca211c747.png

139536.htm

所以,我建议将fatal一类致命错误级别的log用高亮颜色标注,一旦有这类错误发生我们也能第一时间察觉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值