void logInfo(const char * fn,int line,int level,int uid,int pid,const char* fmt,...)
{
if(NULL == fmt)
{
return;
}
if(level < 3)
{
return;
}
lockUser.lock();
time_t cur_time = 0;
time(&cur_time);
struct tm now;
localtime_r(&cur_time,&now);
int year = now.tm_year +1900;
int month = now.tm_mom + 1;
int day = now.tm_mday;
char fileN[128];
int nRet = 0;
memset(fileN,,0x00,sizeof(fileN));
snprintf(fileN,sizeof(fileN)-1,"%s/logUser/User-%04d-%02d-%02d.log",log_dir_path,year,month,day);
memset(&sbuf,0x00,sizeof(sbuf));
if(stat("./logUser",&sbuf)<0)
{
mkdir("./logUser",0744);
}
nRet = stat(fileN,&sbuf);
if((year !=year_)||(month !=month_)||(nRet<0)||(day != day_))
{
year_ = year;
month_ = month;
day_ = day;
if(log_file_log.is_open())
{
log_file_log.close();
}
log_file_log.open(fileN,std::ios_base::app);
}
if(!log_file_log.is_open())
{
log_file_log.open(fileN,std::ios_base::app);
}
memset(str_time,0x00,sizeof(str_time));
snprintf(str_time,sizeof(str_time)-1,"%04d%02d%02d%02d:%02d:%02d",now.tm_year+1900,now.tm_month+1,now.tm_day,now.tm_hour,now.tm_min,now.tm_sec);
}
char buff[2048];
memset(&buff,0x00,sizeof(buff));
snprintf(buff,sizeof(buff),"<%s>[%20s:%05d][level:%03d]"[pid:%05d][uid:%010d]msg)",str_time,fn,line,level,pid,uid;
try{
va_list ap;
va_start(ap,fmt);
int pref = strlen(buff);
vsnprintf(buff+pref,sizeof(buff)-pref,fmt,ap);
va_end(ap);
}
catch(...)
{
log_file_log<<buff<<std::endl;
lockUser.unlock();
return;
}
log_file_log<<buff<<std::endl;
lockUser_unLock();