在项目中直接使用printf输出不是一种好习惯, 一般都建议对调试输出进行二次封装,方便在项目交付阶段进行调试屏蔽,通过对不同优先级的配置,也方便在调试阶段调试,下方就是一个简单的封装:
#ifndef __LOG_H__ #define __LOG_H__ #include#include /* 定义打印类型 */ #define LOG_LVL_EMERG 0 /*!< 紧急 */ #define LOG_LVL_ERROR (LOG_LVL_EMERG + 1) /*!< 错误 */ #define LOG_LVL_WARN (LOG_LVL_EMERG + 2) /*!< 警告 */ #define LOG_LVL_INFO (LOG_LVL_EMERG + 3) /*!< 信息 */ #define LOG_LVL_DEBUG (LOG_LVL_EMERG + 4) /*!< 调试 */ #define LOG_LVL_TRACE (LOG_LVL_EMERG + 5) /*!< 追踪 */ #define DISABLE 0 #define ENABLED 1 #define PRINTF_OMIT DISABLE /*!< 使能输出 */ // #define PRINTF_OMIT ENABLED /*!< 关闭输出 */ #define log_printf(...) printf(__VA_ARGS__) #if (PRINTF_OMIT == DISABLE) #define LOG(level, ...) do{ if(level <= LOG_LVL_CTRL){ log_printf(__VA_ARGS__); } }while(0) #else #define LOG(level,...); #endif extern uint8_t LOG_LVL_CTRL; void log_usart_init(void); /* 使用 */ // LOG(LOG_LVL_DEBUG, "%d ",i); #endif /* __LOG_H__ */
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !