c语言怎么写log日志

c语言怎么写log日志,第1张

#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  

}

用我写的吧 实测过了可以直接使用

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)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12057590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存