- 论坛徽章:
- 0
|
大家帮忙看一下一个日志记录的问题,过一段时间以后打印就出问题,时间间隔一般在10个小时左右,大家帮忙分析看看
etsDebug(0, "调用createL2ServiceCom 建立监听失败[%d]", -1);
void etsDebug(int class, const char *fmt, ...)
{
char buf[20000];
char fname1[128],buf1[32],aCmdbuf[128];
va_list args;
struct stat sbuf;
int rc;
char buf2[32];
char aNewFile[128];
struct timeval curtime; /*for get usec*/
if (etsInitDebug()!=0)
return;
if ( class <= cgDebug ) {
memset(buf,0x00,sizeof(buf));
memset(buf1,0x00,sizeof(buf1));
memset(buf2,0x00,sizeof(buf2));
//memset(fname1,0x00,sizeof(fname1));
va_start(args,fmt);
vsprintf(buf, fmt, args);
va_end(args);
/*sprintf(fname1,"%s/jigang/debug/%s",getenv("HOME"),agDebugfile);
rc=stat(fname1, &sbuf);
if (rc ==0 && sbuf.st_size > 8388608L) {
GetFormatTime(buf1,sizeof(buf1),"%m%d%H%M");
sprintf(aNewFile,"%s.%s",fname1,buf1);
rc = rename(fname1,aNewFile);
if (rc)
return;
}
if (( fp = fopen(fname1,"a+")) == NULL)
return;
*/
GetFormatTime(buf1,sizeof(buf1),"%m-%d %H:%M:%S");
gettimeofday(&curtime,NULL); /*get time at usec level*/
fprintf(fpDebug,"%s:%03d pid[%d]: %s\n",buf1,curtime.tv_usec/1000,getpid(),buf);
printf("%s:%03d pid[%d]: %s\n",buf1,curtime.tv_usec/1000,getpid(),buf);
//fclose(fp);
fflush(fpDebug);
}
}
int etsInitDebug()
{
struct stat sbuf;
char fname1[128],buf1[32];
char aNewFile[128];
memset(fname1,0x00,sizeof(fname1));
sprintf(fname1,"./debug/%s", "jgComWork_log");
//sprintf(fname1,"./debug/%s",getenv("HOME"),agDebugfile);
int rc=stat(fname1, &sbuf);
if (rc ==0 && sbuf.st_size > 8388608L) {
if (fpDebug)
{
fclose(fpDebug);
fpDebug=NULL;
}
GetFormatTime(buf1,sizeof(buf1),"%m%d%H%M");
sprintf(aNewFile,"%s.%s",fname1,buf1);
rc = rename(fname1,aNewFile);
if (rc)
return -1;
}
if (fpDebug==NULL)
fpDebug = fopen(fname1,"a+");
return fpDebug==NULL;
} |
|