log日志:如何设置log级别、打印字体的颜色

话不多说,直接上代码:

#ifndef _LOG_H

#define _LOG_H

#include <stdio.h>

/*打印信息的显示颜色*/
#define HL_RED          "\033[1;31m"				//高亮红色
#define HL_YEL          "\033[1;33m"				//高亮黄色
#define HL_GREEN		"\033[1;32m"                //高亮绿色
#define NONE_COLOR      "\033[0m"                   //清除颜色
/**
 * @enum
 * log的级别。 
 */
enum {
  LOG_LEVEL_D = 0, //debug

  LOG_LEVEL_I, //info

  LOG_LEVEL_W, //warning

  LOG_LEVEL_E, //error

  LOG_LEVEL_OFF, //off
} ;

static const int log_level = LOG_LEVEL_D;

#define my_log_error(fmt, args ...) \
do \
{ \
	if(log_level <= LOG_LEVEL_E)  \
	fprintf(stderr,HL_RED " error  (%s|%d): " **NONE_COLOR** \
	                    fmt, __func__, __LINE__, ## args); \
} \
while(0)

#define my_log_warn(fmt, args ...) \
do \
{ \
	if(log_level <= LOG_LEVEL_W) \
	fprintf(stderr,HL_YEL "warning  (%s|%d): " **NONE_COLOR** \
	                    fmt, __func__, __LINE__, ## args); \
} \
while(0)

#define my_log_info(fmt, args ...) \
do \
{ \
	if(log_level <= LOG_LEVEL_I) \
	fprintf(stderr,HL_GREEN "  (%s|%d): " **NONE_COLOR**\
	                    fmt, __func__, __LINE__, ## args); \
} \
while(0)

#define my_log_debug(fmt, args ...) \
do \
{ \
	if(log_level <= LOG_LEVEL_D) \
	fprintf(stderr, "  (%s|%d): " \
	                    fmt, __func__, __LINE__, ## args); \
} \
while(0)

#endif/*_LOG_H*/

备注:
1、需要打印的地方包含本头文件即可;
2、设置log的级别有利于区分调试代码后release代码,release时,可以将log级别设置为error级别或者warning级别;
3、之所有使用fprintf,是可以将打印重定向到文件保存起来,如果使用printf的话就只能输出到屏幕;
4、这个打印具有很大的扩展性,比如可以在fprintf里面加上打印系统时间等
5、打印信息的显示颜色值可以网上查一下,还有其他好多颜色可以设置;如果在windows环境下打印,有可能看不到打印的颜色,需要将串口打印工具设置一下,仿真终端设置成“Linux”
6、关于printf输出设置颜色更多的样式(闪烁、字体加粗等)请参考下面链接文章的设置方法:https://blog.csdn.net/u013177084/article/details/79553872

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值