日志函数写入数值问题
我写了一个日志函数,但是现在只能将字符写入到日志文件中,怎么修改能将传递的数值和字符都写入到日志函数中?
#include <time.h>
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include "include.h"
int publog(int iLevel, char* psStr, ...)
{
time_t nTime;
struct tm *sttmDateTime;
char sDateTime[6][16];
FILE *pfile = NULL;
char sBuffer[512];
va_list args;
va_start(args, psStr);
vsprintf(sBuffer,psStr,args);
va_end( args );
char *pcSetlevel;
int iSetlevel;
pcSetlevel = pubetc("LEVEL");
iSetlevel = atoi(pcSetlevel);
if(iSetlevel > iLevel)
{
return 0;
}
time (&nTime);
sttmDateTime = (struct tm*) localtime(&nTime);
pfile = fopen ("/home/swhx/socket/log/publog.log", "a+");
if (!pfile)
{
printf("日志打开失败\n");
return 0;
}
strftime (sDateTime[0], 16, "%m", sttmDateTime);
strftime (sDateTime[1], 16, "%d", sttmDateTime);
strftime (sDateTime[2], 16, "%Y", sttmDateTime);
strftime (sDateTime[3], 16, "%H", sttmDateTime);
strftime (sDateTime[4], 16, "%M", sttmDateTime);
strftime (sDateTime[5], 16, "%S", sttmDateTime);
fprintf (pfile, "[%s/%s/%s %s:%s:%s]", sDateTime[2],sDateTime[0] ,sDateTime[1] , sDateTime[3], sDateTime[4], sDateTime[5]);
fprintf(pfile, "%s\n", sBuffer);
fclose(pfile);
return 0;
}
[解决办法]
va_list args; va_start(args, psStr); vsprintf(sBuffer, psStr, args); va_end( args );