void logMessageV(int level, const char * s, va_list ap) { /* Only log to the screen things that are above the minimum level. */ if (tty_logfile && level >= minLevel) { va_list apc; va_copy(apc, ap); printLogHeader(level, tty_logfile); vfprintf(tty_logfile, s, apc); fprintf(tty_logfile, "\n"); fflush(tty_logfile); va_end(apc); } /* But log everything to the file. */ if (file_logfile) { va_list apc; va_copy(apc, ap); printLogHeader(level, file_logfile); vfprintf(file_logfile, s, apc); fprintf(file_logfile, "\n"); fflush(file_logfile); va_end(apc); } }
//---------------------------------------------------------------------------------------- // init // ---------------------------------------------------------------------------------------- bool SimRunner::init ( ) { _FileServices.set_basename(this->_paramSet.getArg("filename")); if(!this->_paramSet.isSet("folder")) { // generat the default folder name with current date char datetime[20]; time_t t = time(NULL); strftime(datetime, 20, "%Y-%m-%d_%H-%M-%S", localtime(&t)); string name = "simulation_"; name += datetime; _FileServices.set_simfolder(name); } else _FileServices.set_simfolder(this->_paramSet.getArg("folder")); // folder name is set _logfile = FileHandler::get_base_path() + _paramSet.getArg("logfile"); _FileServices.set_logfile_type((int)_paramSet.getValue("logfile_type")); _FileServices.setOverwriteFiles((bool)this->_paramSet.getValue("overwrite")); _FileServices.set_genetic_map_output((int)_paramSet.getValue("genetic_map_output")); printLogHeader(); _postexec_script = _paramSet.getArg("postexec_script"); _do_postexec = (_postexec_script.empty() ? false : true); return true; }