简易 C 日志宏
tl;dr:
参考实现一个在 C 程序中打印日志的宏,通过包装 printf() 实现。
klogger.h
#ifndef _SHACHI_LOGGER_H
#define _SHACHI_LOGGER_H
// \brief : 自定义的日志宏,以供调试。
// \author : shachi
// \email : shachi1758@outlook.com
// \details : 定义宏 NDEBUG 关闭。
// \version : 0.1.0
// \log :
// 2023-02-24 09:53:10 创建文件
// 日志模块开关
#ifndef NDEBUG
#include <time.h>
#include <stdio.h>
#define COLOR_RED "\033[1;31m"
#define COLOR_BLUE "\033[1;34m"
#define COLOR_NONE "\033[0m"
#define KINFO(fmt, args...)\
do{\
time_t t;\
struct tm *ti;\
time(&t);\
ti = localtime(&t);\
printf("%d-%d-%d %d:%d:%d ",ti->tm_year + 1900,ti->tm_mon+1,ti->tm_mday,ti->tm_hour,ti->tm_min,ti->tm_sec);\
printf("[%s:%d->%s] ", __FILE__,__LINE__,__func__);\
printf(COLOR_BLUE "INFO:" COLOR_NONE);\
printf(fmt, ##args);\
}while(0)
#define KERROR(fmt, args...)\
do{\
time_t t;\
struct tm *ti;\
time(&t);\
ti = localtime(&t);\
printf("%d-%d-%d %d:%d:%d ",ti->tm_year + 1900,ti->tm_mon+1,ti->tm_mday,ti->tm_hour,ti->tm_min,ti->tm_sec);\
printf("[%s:%d->%s] ", __FILE__,__LINE__,__func__);\
printf(COLOR_RED "ERROR:" COLOR_NONE);\
printf(fmt, ##args);\
}while(0)
// 裸机简易 LOG
#define kdebug(fmt,args...) printf (fmt ,##args)
#define kdebugX(level,fmt,args...) if (DEBUG>=level) printf(fmt,##args);
#else
#define KINFO(fmt,args...)
#define KERROR(fmt, args...)
#define kdebug(fmt,args...)
#define kdebugX(level,fmt,args...)
#endif // __KLOG
#endif // _SHACHI_LOGGER_H
留言或评论请使用 Github Issues。