打印输出等级控制,方便调试及发布版本

打印输出等级控制,方便调试及发布版本,我们在编写代码时经常要看一些打印信息,但是发布版本的时候,又不能有太多无关打印,因此需要一些小技巧进行控制输出的打印等级

/*打印等级,修改后面的宏定义可以改变函数输出打印等级*/
#define ALG_PRTINT_LEVER PRINT_LEVEL_WRN

#define ALG_PRTINT(...)  SAL_printf(__VA_ARGS__)
#define ALG_PRT(...)     ALG_PRTINT(__FUNCTION__, __LINE__, PRINT_LEVEL_UNLIMIT, __VA_ARGS__)
#define ALG_DBG(...)     ALG_PRTINT(__FUNCTION__, __LINE__, PRINT_LEVEL_DBG,     __VA_ARGS__)
#define ALG_WAR(...)     ALG_PRTINT(__FUNCTION__, __LINE__, PRINT_LEVEL_WRN,     __VA_ARGS__)
#define ALG_ERR(...)     ALG_PRTINT(__FUNCTION__, __LINE__, PRINT_LEVEL_ERR,     __VA_ARGS__)

/***********************************************************************************************//**
* @enum     HAT_SAL_PRT_LEVEL_E
* @brief    打印输出的等级
***************************************************************************************************/
typedef enum _PRT_LEVEL_E_
{
	PRINT_LEVEL_ERR = 0,        /*错误打印信息*/
	PRINT_LEVEL_WRN = 1,        /*警告打印信息*/
	PRINT_LEVEL_DBG = 2,         /*调试打印信息*/
	PRINT_LEVEL_UNLIMIT = 3,    /*无限制打印信息*/
	PRINT_LEVEL_NOPRT = 4,      /*没有打印信息*/
} PRT_LEVEL_E;

/*******************************************************************************
	Function:	SAL_printf
	Description: 该函数能够通过设置的打印等级ALG_PRTINT_LEVER,来控制是否输出相关语句
	Input:
	Output:
	Return:
			0:			Successful
			ohters:		Failed
*******************************************************************************/
void SAL_printf(const char *pFun, UINT line, PRT_LEVEL_E levelParam, const char *fmt, ...)
{
	static INT8 g_printfInfo[4][16] = { "ERR", "WAR", "DBG", "INF" };
	va_list p;
	if (ALG_PRTINT_LEVER == PRINT_LEVEL_NOPRT || levelParam == PRINT_LEVEL_NOPRT)
	{
		return;
	}
	if (levelParam <= ALG_PRTINT_LEVER )
	{
		va_start(p, fmt);
		printf("[DSP][%s][%s][%4d] ", g_printfInfo[levelParam], pFun, line);
		vprintf(fmt, p);
		va_end(p);
	}
}

效果图

输入如下语句

		printf("[ALG ERROR][函数:%s][行号:%d],图片正常读取\n", __FUNCTION__, __LINE__);
		ALG_ERR("你好\n");
		ALG_ERR("你好%d\n", 245);
		ALG_WAR("你好\n");
		ALG_WAR("你好%d\n", 245);
		ALG_DBG("你好\n");
		ALG_PRT("你好%d\n", 245);
		ALG_ERR("你好%d\n", 245);

设置级别 PRINT_LEVEL_WRN

在这里插入图片描述

设置级别 PRINT_LEVEL_UNLIMIT

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翟羽嚄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值