打印调试之颜色应用

打印调试之颜色应用

一、颜色对应表

字/字背景 颜色字颜色数字字背景颜色数字
3040
3141
绿3242
3343
3444
3545
深绿3646
3747

ANSII控制码的说明:

  • \033[0m: 关闭所有属性
  • \033[1m: 设置高亮度
  • \033[2m:淡色
  • \033[3m:斜体
  • \033[4m: 下划线
  • \033[5m:闪烁
  • \033[7m:反显(交换前景色和背景色)

二、示例代码

//public_debug_color.h
#ifndef _PUBLIC_DEBUG_H_
#define _PUBLIC_DEBUG_H_
#include <stdio.h>

//颜色格式:"\033[背景颜色;字体颜色m字符串\033[0m"

#define OPEN_COLOR                     "\033[1m"

#define FONT_COLOR_BLACK               "\033[30m"
#define FONT_COLOR_RED                 "\033[31m"
#define FONT_COLOR_GREEN               "\033[32m"
#define FONT_COLOR_YELLOW              "\033[33m"

#define BACKGROUND_COLOR_BLACK         "\033[40;37m"
#define BACKGROUND_COLOR_RED           "\033[41;37m"
#define BACKGROUND_COLOR_GREEN         "\033[42;37m"
#define BACKGROUND_COLOR_YELLOW        "\033[43;37m"

#define CLOSE_COLOR                    "\033[0m"

#define LOG_INFO_EN
#define LOG_ERROR_EN
#define LOG_WARNING_EN
#define LOG_RIGHT_EN

#ifdef LOG_INFO_EN
#define log_info(fmt, arg...)  do{ \
	printf(OPEN_COLOR FONT_COLOR_BLACK "[log_info]" CLOSE_COLOR "%s,%s():%d," fmt "\n",__FILE__, __FUNCTION__, __LINE__, ##arg); \
    fflush(stdout);                \
}while(0)
#else
#define log_info(fmt, arg...)
#endif

#ifdef LOG_ERROR_EN
#define log_error(fmt, arg...)  do{ \
	printf(OPEN_COLOR FONT_COLOR_RED "[log_error]" CLOSE_COLOR "%s,%s():%d," fmt "\n",__FILE__, __FUNCTION__, __LINE__, ##arg); \
    fflush(stdout);                \
}while(0)
#else
#define log_error(fmt, arg...)
#endif

#ifdef LOG_WARNING_EN
#define log_warning(fmt, arg...)  do{ \
	printf(OPEN_COLOR FONT_COLOR_YELLOW "[log_warning]" CLOSE_COLOR "%s,%s():%d," fmt "\n",__FILE__, __FUNCTION__, __LINE__, ##arg); \
    fflush(stdout);                   \
}while(0)
#else
#define log_warning(fmt, arg...)
#endif

#ifdef LOG_RIGHT_EN
#define log_right(fmt, arg...)  do{ \
	printf(OPEN_COLOR FONT_COLOR_GREEN "[log_right]" CLOSE_COLOR "%s,%s():%d," fmt "\n",__FILE__, __FUNCTION__, __LINE__, ##arg); \
    fflush(stdout);                 \
}while(0)
#else
#define log_right(fmt, arg...)
#endif


#endif
//test.c
#include "public_debug_color.h"
#include <stdio.h>

int main(int argc, char *argv[])
{
    int a = 10;
    log_info("a = %d", a);
    log_info("finish main()");

    log_error("a = %d", a);
    log_error("finish main()");

    log_warning("a = %d", a);
    log_warning("finish main()");

    log_right("a = %d", a);
    log_right("finish main()");

    return 0;
}

相关代码已通过调试。
测试结果

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值