基于C宏定义的微型 LOG实现

嵌入式编程有时候真的很需要一个精小的log日志记录系统,主要是为了开发和调试使用。对于小型嵌入式系统来说,一般在发布运行时对日志系统的需求比较低。
微型log分为4个日志记录级别。低于设置的级别,相应的日志记录函数将会被宏定义为空白。


/***********************************************************************************************
_____________________________________杭州大仁科技有限公司_______________________________________
@文 件 名: ulog.h
@日    期: 2016.07.23
@作    者: 张诗星

@文件说明:

	调试诊断库是一个包含ASSERT(断言)、LOG(日志记录)功能的程序模块。
	可以使用调试诊断库来快速的定位程序BUG和记录日志。

	ulog是一个基于宏的微型日志记录系统,
	基于宏的实现,可以方便的打印出行号和文件名等信息

@修订说明:

	2016.07.23	初始版本
	2016.07.24	修改实现方式为宏定义实现,可无需要可变参数宏支持
	2016.07.28  修改实现方式,修改为只适用宏来实现的方式

***********************************************************************************************/

#ifndef _U_LOG_H_
#define _U_LOG_H_

/*----------------------------------------头文件----------------------------------------------*/
#include 
   
   
    
    

/*---------------------------------------用户配置---------------------------------------------*/
//log级别
#define LOG_CFG_LEVEL		(G_TRACE)
//日志记录接口
#define LOG_PRINTF printf

/*-------------------------------------枚举类型定义-------------------------------------------*/
//日志记录级别
#define	G_DEBUG		(0)			/* 信息用来显示详细的执行信息和步骤 */
#define	G_TRACE		(1)			/* 用来跟踪特定的主要信息 */
#define G_WARING	(2)
#define	G_ERROR		(3)			/* 错误级别 */
#define	G_NONE		(4)			/* 关闭LOG */

/*---------------------------------------接口定义---------------------------------------------*/

// 修改打印样式
#define _LOG_PT(aTOKE)		\
	LOG_PRINTF("\r\n<" aTOKE "> <%s><%d>\\  ", __FILE__, __LINE__);	\
	LOG_PRINTF

// DEBUG级别
#if LOG_CFG_LEVEL>G_DEBUG
#define LOG_DEBUG
#else
#define LOG_DEBUG _LOG_PT("DEBUG")
#endif	/* #if LOG_CFG_LEVEL>G_DEBUG */

// TRACE级别
#if LOG_CFG_LEVEL>G_TRACE
#define LOG_TRACE
#else
#define LOG_TRACE _LOG_PT("TRACE")
#endif	/* #if LOG_CFG_LEVEL>G_TRACE */

// WARING级别
#if LOG_CFG_LEVEL>G_WARING
#define LOG_WARING
#else
#define LOG_WARING _LOG_PT("WARNG")
#endif /* #if LOG_CFG_LEVEL>G_WARING */

// ERROR级别
#if LOG_CFG_LEVEL>G_ERROR
#define LOG_ERROR
#else
#define LOG_ERROR _LOG_PT("ERROR")
#endif /* #if LOG_CFG_LEVEL>G_ERROR */

#endif /* #ifndef _U_LOG_H_ */

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值