在调试代码的过程中经常使用到printf进行信息输出,需要写很多信息,写的多了感觉不是很方便,特用宏进行封装,然后可以直接进行调用,比较方便
DebugLog.h
#ifndef _DEBUGLOG_H
#define _DEBUGLOG_H
#define ESC_START "\033["
#define ESC_END "\033[0m"
#define COLOR_FATAL "31;40;5m"
#define COLOR_ALERT "31;40;1m"
#define COLOR_CRIT "31;40;1m"
#define COLOR_ERROR "31;40;1m"
#define COLOR_WARN "33;40;1m"
#define COLOR_NOTICE "34;40;1m"
#define COLOR_INFO "32;40;1m"
#define COLOR_DEBUG "36;40;1m"
#define COLOR_TRACE "37;40;1m"
#define Msg_Info(format, args...) (printf( ESC_START COLOR_INFO "[INFO]-[%s]-[%s]-[%d]:" format ESC_END, __FILE__, __FUNCTION__ , __LINE__, ##args))
#define Msg_Debug(format, args...) (printf( ESC_START COLOR_DEBUG "[DEBUG]-[%s]-[%s]-[%d]:" format ESC_END, __FILE__, __FUNCTION__ , __LINE__, ##args))
#define Msg_Warn(format, args...) (printf( ESC_START COLOR_WARN "[WARN]-[%s]-[%s]-[%d]:" format ESC_END, __FILE__, __FUNCTION__ , __LINE__, ##args))
#define Msg_Error(format, args...) (printf( ESC_START COLOR_ERROR "[ERROR]-[%s]-[%s]-[%d]:" format ESC_END, __FILE__, __FUNCTION__ , __LINE__, ##args))
#endif测试代码:
#include<stdio.h>
#include "DebugLog.h"
int main(int argc, const char *argv[])
{
Msg_Info("test!\n");
Msg_Warn("%d\n",10);
Msg_Error("%s\n","error");
Msg_Debug("Debug\n");
return 0;
}执行结果:

本文介绍了一种用于C语言调试的宏封装方法,通过定义不同级别的日志宏简化了调试过程中的信息输出工作。该方法利用ANSI转义序列实现彩色输出,并提供了Info、Warn、Error及Debug等不同级别的日志宏。
1955

被折叠的 条评论
为什么被折叠?



