通过LOG 来debug是比较常用的一种debug方法,但是有时候LOG 太多,会刷屏,或者LOG刷出来不完整
这时候可以考虑将log 输入到文件中
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
static FILE* output = NULL;
#define MAX_STMT_LEN 512
static char dbg_stmt[MAX_STMT_LEN];
static void PrintLogToFile (const char* fmt,...)
{
struct timeval current_time;
va_list v_arg;
if (output == NULL)
{
output = fopen("mylog.log","a+");
}
if (output == NULL)
{
return;
}
gettimeofday (¤t_time,NULL);
va_start (v_arg,fmt);
vsnprintf(dbg_stmt,MAX_STMT_LEN,fmt,v_arg);
fprintf(output,"[%lu.%03lu S]: %s ",current_time.tv_sec,current_time.tv_usec/1000,dbg_stmt);
va_end(v_arg);
fflush(output);//可能会影响performance
return;
}
int main()
{
int i = 0;
PrintLogToFile("hello,just test %d\n",i);
return 0;
}