读书人

日志函数写入数值有关问题

发布时间: 2012-09-14 23:00:49 作者: rapoo

日志函数写入数值问题
我写了一个日志函数,但是现在只能将字符写入到日志文件中,怎么修改能将传递的数值和字符都写入到日志函数中?
#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;

}


[解决办法]

C/C++ code
va_list args;    va_start(args, psStr);    vsprintf(sBuffer, psStr, args);    va_end( args ); 

读书人网 >C语言

热点推荐