为了方便日志的书写,进行日志输出宏定义
#include <stdio.h>
#include <memory.h>
#include <time.h>
// 调试日志信息
#define LOG_INFO(format, ...) \
{ \
time_t t = time(0); \
struct tm ptm; \
memset(&ptm, 0, sizeof(ptm)); \
localtime_r(&t, &ptm); \
fprintf(stdout, "[ INFO ] [ %4d-%02d-%02d %02d:%02d:%02d ] [ %s:%s:%d ] " format "", \
ptm.tm_year + 1900, ptm.tm_mon + 1, ptm.tm_mday, ptm.tm_hour, \
ptm.tm_min, ptm.tm_sec, __FILE__, __FUNCTION__ , __LINE__, ##__VA_ARGS__); \
}
// 错误日志信息
#define LOG_ERROR(format, ...) \
{ \
time_t t = time(0); \
struct tm ptm; \
memset(&ptm, 0, sizeof(ptm)); \
localtime_r(&t, &ptm); \
fprintf(stderr, "[ ERROR] [%4d-%02d-%02d %02d:%02d:%02d ] [ %s:%s:%d ] " format "", \
ptm.tm_year + 1900, ptm.tm_mon + 1, ptm.tm_mday, ptm.tm_hour, \
ptm.tm_min, ptm.tm_sec, __FILE__, __FUNCTION__ , __LINE__, ##__VA_ARGS__); \
}
int main()
{
LOG_INFO("debug something %d !\n", 1);
LOG_ERROR("something error %d !\n", 1);
return 0;
}
宏定义日志输出,方便调试
#include <stdio.h>
#include <memory.h>
char g_log_message[256] = {0};
#define output_message(message, args...) \
{ \
memset(g_log_message, 0, sizeof(g_log_message)); \
snprintf(g_log_message, sizeof(g_log_message) - 1, message, ##args); \
}
int main()
{
output_message("test(%s) error(%d) !!!", "message", 1001);
printf("%s\n", g_log_message);
return 0;
}