static void MLOG_open() { char filebuf[80]; if (MLOGFP) return; generate_filename(logdir ? logdir : MYLOGDIR, MYLOGFILE, filebuf); MLOGFP = fopen(filebuf, PG_BINARY_A); if (!MLOGFP) { generate_homefile(MYLOGFILE, filebuf); MLOGFP = fopen(filebuf, PG_BINARY_A); if (!MLOGFP) { generate_filename("C:\\podbclog", MYLOGFILE, filebuf); MLOGFP = fopen(filebuf, PG_BINARY_A); #ifdef WIN32 if (!MLOGFP) { if (0 == _mkdir(PODBCLOGDIR)) MLOGFP = fopen(filebuf, PG_BINARY_A); } #endif /* WIN32 */ } } if (MLOGFP) setbuf(MLOGFP, NULL); }
void forcelog(const char *fmt,...) { static BOOL force_on = TRUE; va_list args; char filebuf[80]; int gerrno = GENERAL_ERRNO; if (!force_on) return; ENTER_MYLOG_CS; va_start(args, fmt); if (!MLOGFP) { generate_filename(MYLOGDIR, MYLOGFILE, filebuf); MLOGFP = fopen(filebuf, PG_BINARY_A); if (MLOGFP) setbuf(MLOGFP, NULL); if (!MLOGFP) { generate_homefile(MYLOGFILE, filebuf); MLOGFP = fopen(filebuf, PG_BINARY_A); } if (!MLOGFP) { generate_filename("C:\\podbclog", MYLOGFILE, filebuf); MLOGFP = fopen(filebuf, PG_BINARY_A); } if (MLOGFP) setbuf(MLOGFP, NULL); else force_on = FALSE; } if (MLOGFP) { #ifdef WIN_MULTITHREAD_SUPPORT #ifdef WIN32 time_t ntime; char ctim[128]; time(&ntime); strcpy(ctim, ctime(&ntime)); ctim[strlen(ctim) - 1] = '\0'; fprintf(MLOGFP, "[%d.%d(%s)]", GetCurrentProcessId(), GetCurrentThreadId(), ctim); #endif /* WIN32 */ #endif /* WIN_MULTITHREAD_SUPPORT */ #if defined(POSIX_MULTITHREAD_SUPPORT) fprintf(MLOGFP, "[%lu]", pthread_self()); #endif /* POSIX_MULTITHREAD_SUPPORT */ vfprintf(MLOGFP, fmt, args); } va_end(args); LEAVE_MYLOG_CS; GENERAL_ERRNO_SET(gerrno); }
DLL_DECLARE void mylog(const char *fmt,...) { va_list args; char filebuf[80]; int gerrno; if (!mylog_on) return; gerrno = GENERAL_ERRNO; ENTER_MYLOG_CS; #ifdef LOGGING_PROCESS_TIME if (!start_time) start_time = timeGetTime(); #endif /* LOGGING_PROCESS_TIME */ va_start(args, fmt); if (!MLOGFP) { generate_filename(logdir ? logdir : MYLOGDIR, MYLOGFILE, filebuf); MLOGFP = fopen(filebuf, PG_BINARY_A); if (!MLOGFP) { generate_homefile(MYLOGFILE, filebuf); MLOGFP = fopen(filebuf, PG_BINARY_A); if (!MLOGFP) { generate_filename("C:\\podbclog", MYLOGFILE, filebuf); MLOGFP = fopen(filebuf, PG_BINARY_A); } } if (MLOGFP) setbuf(MLOGFP, NULL); else mylog_on = 0; } if (MLOGFP) { #ifdef WIN_MULTITHREAD_SUPPORT #ifdef LOGGING_PROCESS_TIME DWORD proc_time = timeGetTime() - start_time; fprintf(MLOGFP, "[%u-%d.%03d]", GetCurrentThreadId(), proc_time / 1000, proc_time % 1000); #else fprintf(MLOGFP, "[%u]", GetCurrentThreadId()); #endif /* LOGGING_PROCESS_TIME */ #endif /* WIN_MULTITHREAD_SUPPORT */ #if defined(POSIX_MULTITHREAD_SUPPORT) fprintf(MLOGFP, "[%lu]", pthread_self()); #endif /* POSIX_MULTITHREAD_SUPPORT */ vfprintf(MLOGFP, fmt, args); } va_end(args); LEAVE_MYLOG_CS; GENERAL_ERRNO_SET(gerrno); }
void qlog(char *fmt,...) { va_list args; char filebuf[80]; int gerrno; if (!qlog_on) return; gerrno = GENERAL_ERRNO; ENTER_QLOG_CS; #ifdef LOGGING_PROCESS_TIME if (!start_time) start_time = timeGetTime(); #endif /* LOGGING_PROCESS_TIME */ va_start(args, fmt); if (!QLOGFP) { generate_filename(QLOGDIR, QLOGFILE, filebuf); QLOGFP = fopen(filebuf, PG_BINARY_A); if (!QLOGFP) { generate_homefile(QLOGFILE, filebuf); QLOGFP = fopen(filebuf, PG_BINARY_A); } if (QLOGFP) setbuf(QLOGFP, NULL); else qlog_on = 0; } if (QLOGFP) { #ifdef LOGGING_PROCESS_TIME DWORD proc_time = timeGetTime() - start_time; fprintf(QLOGFP, "[%d.%03d]", proc_time / 1000, proc_time % 1000); #endif /* LOGGING_PROCESS_TIME */ vfprintf(QLOGFP, fmt, args); } va_end(args); LEAVE_QLOG_CS; GENERAL_ERRNO_SET(gerrno); }