Linux编程之定制带级别的log(2)

后面哪个 ”\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);

效果:

Linux编程之定制带级别的log

Linux编程之定制带级别的log

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/558a1f7a076e1584ba711be493a14ab1.html