Esempio n. 1
0
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;
}