日志打印宏的编写

参考文献

整理:C/C++可变参数,“## __VA_ARGS__”宏的介绍和使用_##__va_args__-CSDN博客

代码

为了方便以后的测试,直接使用日志来进行测试的打印,就使用了宏日志

#define INF 0
#define DBG 1
#define ERR 2
#define LOG_LEVEL DBG

#define LOG(level, format, ...)                                                             \
    do                                                                                      \
    {                                                                                       \
        if (level < LOG_LEVEL)                                                              \
            break;                                                                          \
        time_t t = time(nullptr);                                                           \
        struct tm *ltm = localtime(&t);                                                     \
        char tmp[32] = {0};                                                                 \
        strftime(tmp, 31, "%H:%M:%S", ltm);                                                 \
        fprintf(stdout, "[%s %s:%d] " format "\n", tmp, __FILE__, __LINE__, ##__VA_ARGS__); \
    } while (0)

#define INF_LOG(format, ...) LOG(INF, format, ##__VA_ARGS__)
#define DBG_LOG(format, ...) LOG(DBG, format, ##__VA_ARGS__)
#define ERR_LOG(format, ...) LOG(ERR, format, ##__VA_ARGS__)

部分介绍

日志打印宏的编写_第1张图片

测试

INF_LOG测试

日志打印宏的编写_第2张图片

DBG_LOG测试

日志打印宏的编写_第3张图片

你可能感兴趣的:(mudo,c++)