多年前项目中写的代码了,现在整理CSDN博客,重新记录一下。
#include <stdio.h>
#define LOG_LEVEL 0x0F
#define LOG_LVL_ERROR 0x01
#define LOG_LVL_WARN 0x02
#define LOG_LVL_INFO 0x04
#define LOG_LVL_DEBUG 0x08
#if (LOG_LEVEL & LOG_LVL_ERROR)
#define LOGE(format, ...) \
do {
\
fprintf(stderr, "ERROR %-16s %4d " format "\n", __FILE__, __LINE__, ##__VA_ARGS__ ); \
} while (0)
#else
#define LOGE(format, ...) \
do {
} while (0)
#endif
#if (LOG_LEVEL & LOG_LVL_WARN)
#define LOGW(format, ...) \
do {
\
fprintf(stderr, "WARNING %-16s %4d " format "\n", __FILE__, __LINE__, ##__VA_ARGS__ ); \
} while (0)
#else
#define LOGW(format, ...) \
do {
} while (0)
#endif
#if (LOG_LEVEL & LOG_LVL_INFO)
#define LOGI(format, ...) \
do {
\
fprintf(stderr, "INFO %-16s %4d " format "\n", __FILE__, __LINE__, ##__VA_ARGS__ ); \
} while (0)
#else
#define LOGI(format, ...) \
do {
} while (0)
#endif
#if (LOG_LEVEL & LOG_LVL_DEBUG)
#define LOGD(format, ...) \
do {
\
fprintf(stderr, "DEBUG %-16s %4d " format "\n", __FILE__, __LINE__, ##__VA_ARGS__ ); \
} while (0)
#else
#define LOGD(format, ...) \
do {
} while (0)
#endif