http://www.kuqin.com/article/23candcplusplus/31837.html
int ErrLog(char *fmt, ...)
{
FILE *fp;
char logfile[255];
va_list args;
va_start(args, fmt);
sprintf(logfile, "%s/log/%s.err.%s.log", getenv("HOME"), srv_name, GetSysDate(0));
fp = fopen(logfile, "a+");
if (fp == NULL) {
fprintf(stderr, "open run log file[%s]error: %s\n", logfile, strerror(errno));
return -1;
}
fprintf(fp, "[%s %s][%ld:%ld][%s][%s]\n", GetSysDate(1), GetSysTime(), getpgrp(), getpid(), bank_name, strerror(errno));
vfprintf(fp, fmt, args);
fclose(fp);
va_end(args);
return 0;
}
int printv(char *fmt, ...)
{
va_list args;
if (verbose == 0)
return 0;
va_start(args, fmt);
vfprintf(stderr, fmt, args);
va_end(args);
return 0;
}
int printv( char *psMsg, int iSqlcode, char *psFile, long lLine )
{
FILE *fp_log;
char sFile[255];
char sDate[9],sTime[7];
sprintf(sFile,"%s/log/err.log",getenv("HOME"));
if((fp_log=fopen(sFile,"a"))!=NULL)
{
acc_getrqsj(sDate,sTime);
fprintf(fp_log,"时间:%s%s|文件:%s|行数:%d|%s|数据库错码:%d|\n",\
sDate+4,sTime,psFile,lLine,psMsg,iSqlcode);
}
fclose(fp_log);
return 0;
}