extern void eventlog_hexdump_data(void const * data, unsigned int len) { unsigned int i; char dst[100]; unsigned char * datac; if (!data) { eventlog(eventlog_level_error, __FUNCTION__, "got NULL data"); return; } for (i = 0, datac = (unsigned char*)data; i < len; i += 16, datac += 16) { hexdump_string(datac, (len - i < 16) ? (len - i) : 16, dst, i); std::fprintf(eventstrm,"%s\n",dst); #ifdef WIN32_GUI if (eventlog_level_gui&currlevel) gui_lprintf(eventlog_level_info,"%s\n",dst); #endif if (eventlog_debugmode) { std::printf("%s\n",dst); } } if (eventlog_debugmode) std::fflush(stdout); std::fflush(eventstrm); }
extern void eventlog(t_eventlog_level level, char const * module, char const * fmt, ...) { std::va_list args; char time_string[EVENT_TIME_MAXLEN]; struct std::tm * tmnow; std::time_t now; if (!(level&currlevel)) return; if (!eventstrm) return; /* get the time before parsing args */ std::time(&now); if (!(tmnow = std::localtime(&now))) std::strcpy(time_string,"?"); else std::strftime(time_string,EVENT_TIME_MAXLEN,EVENT_TIME_FORMAT,tmnow); if (!module) { std::fprintf(eventstrm,"%s [error] eventlog: got NULL module\n",time_string); #ifdef WIN32_GUI if (eventlog_level_gui&currlevel) gui_lprintf(eventlog_level_error,"%s [error] eventlog: got NULL module\n",time_string); #endif std::fflush(eventstrm); return; } if (!fmt) { std::fprintf(eventstrm,"%s [error] eventlog: got NULL fmt\n",time_string); #ifdef WIN32_GUI if (eventlog_level_gui&currlevel) gui_lprintf(eventlog_level_error,"%s [error] eventlog: got NULL fmt\n",time_string); #endif std::fflush(eventstrm); return; } std::fprintf(eventstrm,"%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); #ifdef WIN32_GUI if (eventlog_level_gui&currlevel) gui_lprintf(level,"%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); #endif va_start(args,fmt); std::vfprintf(eventstrm,fmt,args); #ifdef WIN32_GUI if (eventlog_level_gui&currlevel) gui_lvprintf(level,fmt,args); #endif va_end(args); std::fprintf(eventstrm,"\n"); #ifdef WIN32_GUI if (eventlog_level_gui&currlevel) gui_lprintf(level,"\n"); #endif if (eventlog_debugmode) { std::printf("%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); va_start(args,fmt); std::vprintf(fmt,args); va_end(args); std::printf("\n"); std::fflush(stdout); } std::fflush(eventstrm); }
extern void eventlog(t_eventlog_level level, char const * module, char const * fmt, ...) #endif { va_list args; char time_string[EVENT_TIME_MAXLEN]; struct tm * tmnow; time_t now; if (!(level&currlevel)) return; if (!eventstrm) return; /* get the time before parsing args */ time(&now); if (!(tmnow = localtime(&now))) strcpy(time_string,"?"); else strftime(time_string,EVENT_TIME_MAXLEN,EVENT_TIME_FORMAT,tmnow); if (!module) { fprintf(eventstrm,"%s [error] eventlog: got NULL module\n",time_string); #ifdef WIN32_GUI gui_lprintf(eventlog_level_error,"%s [error] eventlog: got NULL module\n",time_string); #endif fflush(eventstrm); return; } if (!fmt) { fprintf(eventstrm,"%s [error] eventlog: got NULL fmt\n",time_string); #ifdef WIN32_GUI gui_lprintf(eventlog_level_error,"%s [error] eventlog: got NULL fmt\n",time_string); #endif fflush(eventstrm); return; } fprintf(eventstrm,"%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); #ifdef WIN32_GUI gui_lprintf(level,"%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); #endif va_start(args,fmt); #ifdef HAVE_VPRINTF vfprintf(eventstrm,fmt,args); #ifdef WIN32_GUI gui_lvprintf(level,fmt,args); #endif #else # if HAVE__DOPRNT _doprnt(fmt,args,eventstrm); # else fprintf(eventstrm,"sorry, vfprintf() and _doprnt() are not available on this system"); # endif #endif va_end(args); fprintf(eventstrm,"\n"); #ifdef WIN32_GUI gui_lprintf(level,"\n"); #endif if (eventlog_debugmode) { printf("%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); va_start(args,fmt); #ifdef HAVE_VPRINTF vprintf(fmt,args); #else # if HAVE__DOPRNT _doprnt(fmt,args,stdout); # else printf("sorry, vfprintf() and _doprnt() are not available on this system"); # endif #endif va_end(args); printf("\n"); fflush(stdout); } fflush(eventstrm); }