void WriteSysLog(char *str)
{
char buf[512]
long MAXLEN = 10*1024*1024//10MB
time_t timep
FILE *fp = NULL
struct tm *p
time(&timep)
p = localtime(&timep)
memset(buf,0,sizeof(buf))
sprintf(buf,"%d-%d-%d %d:%d:%d : ",(1900+p->tm_year),(1+p->tm_mon),\
p->tm_mday,p->tm_hour, p->tm_min, p->tm_sec)//星期p->tm_wday
strcat(buf,str)
strcat(buf,"\r\n")
fp = fopen("./syslog.log","r")
if(fp==NULL)
{
fp = fopen("./syslog.log","w+")
}
else
{
fseek(fp,0,2)
if(ftell(fp) >= MAXLEN)
{
fclose(fp)
fp = fopen("./syslog.log","w+")
//大于10MB则清空原日志文件
}
else
{
fclose(fp)
fp = fopen("./syslog.log","a")
}
}
fwrite(buf,1,strlen(buf),fp)
fflush(fp)
fsync(fileno(fp))
fclose(fp)
}
#include <stdio.h>#include <stdarg.h>
#include <time.h>
int write_log (FILE* pFile, const char *format, ...) {
va_list arg
int done
va_start (arg, format)
//done = vfprintf (stdout, format, arg)
time_t time_log = time(NULL)
struct tm* tm_log = localtime(&time_log)
fprintf(pFile, "%04d-%02d-%02d %02d:%02d:%02d ", tm_log->tm_year + 1900, tm_log->tm_mon + 1, tm_log->tm_mday, tm_log->tm_hour, tm_log->tm_min, tm_log->tm_sec)
done = vfprintf (pFile, format, arg)
va_end (arg)
fflush(pFile)
return done
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)