static int init_glog() { char *logname = myconfig_get_value("log_main_logname"); if (!logname) logname = "./main_log.log"; char *cloglevel = myconfig_get_value("log_main_loglevel"); int loglevel = LOG_NORMAL; if (cloglevel) loglevel = getloglevel(cloglevel); int logsize = myconfig_get_intval("log_main_logsize", 100); int logintval = myconfig_get_intval("log_main_logtime", 3600); int lognum = myconfig_get_intval("log_main_lognum", 10); glogfd = registerlog(logname, loglevel, logsize, logintval, lognum); return glogfd; }
struct OPTION *setOPTION(int argc, char **argv) { if (argc == 1) display_usage(); struct OPTION *op = smalloc(sizeof(struct OPTION)); init_OPTION(op); static const char *short_options = "ho:s:lLcdC:A:"; struct option long_options[] = { {"help", no_argument, NULL, 'h'}, {"log-file", required_argument, NULL, 'o'}, {"num-randomseed", required_argument, NULL, 's'}, {"ds-line", no_argument, NULL, 'l'}, {"num-line-node", required_argument, NULL, 300}, {"ds-lattice", no_argument, NULL, 'L'}, {"num-lattice-side", required_argument, NULL, 301}, {"ds-crossover", no_argument, NULL, 'c'}, {"ds-direct", no_argument, NULL, 'd'}, {"rate-infect", required_argument, NULL, 302}, {"rate-recover", required_argument, NULL, 303}, {"STEP", required_argument, NULL, 304}, {0, 0, 0, 0}, }; int longIndex = 0; int opt; do { opt = getopt_long(argc, argv, short_options, long_options, &longIndex); if (opt == -1) break; switch (opt) { case 'h': display_usage(); break; case 'o': op->logfilename = optarg; break; case 's': op->num_randomseed = strtol(optarg, NULL, 10); break; case 'l': op->ds_line = true; break; case 300: op->num_line_node = strtol(optarg, NULL, 10); break; case 'L': op->ds_lattice = true; break; case 301: op->num_lattice_side = strtol(optarg, NULL, 10); break; case 'c': op->ds_crossover = true; break; case 'd': op->ds_direct = true; break; case 302: op->rate_infect = strtod(optarg, NULL); break; case 303: op->rate_recover = strtod(optarg, NULL); break; case 304: op->STEP = strtol(optarg, NULL, 10); break; case '?': break; default: abort(); } } while (1); loginit(op->logfilename, getloglevel()); setRGseed(op->num_randomseed); verify_OPTION(op); info_OPTION(op); return op; }
int init_para(t_path_info * path) { char *v = myconfig_get_value("log_logname"); if (v == NULL) { fprintf(stderr, "config have not logname!\n"); return -1; } char *logfile = v; int loglevel = getloglevel(myconfig_get_value("log_loglevel")); int logsize = myconfig_get_intval("log_logsize", 100); int logtime = myconfig_get_intval("log_logtime", 3600); int logcount = myconfig_get_intval("log_logcount", 10); if (init_log()) { fprintf(stderr, "init log error %m\n"); return -1; } fplog = registerlog(logfile, loglevel, logsize, logtime, logcount); if (fplog < 0) { fprintf(stderr, "registerlog %s %m\n", logfile); return -1; } v = myconfig_get_value("path_workdir"); if (v == NULL) { LOG(fplog, LOG_ERROR, "config have not path_workdir!\n"); return -1; } snprintf(path->workdir, sizeof(path->workdir), "%s", v); v = myconfig_get_value("path_indir"); if (v == NULL) { LOG(fplog, LOG_ERROR, "config have not path_indir!\n"); return -1; } snprintf(path->indir, sizeof(path->indir), "%s", v); v = myconfig_get_value("path_outdir"); if (v == NULL) { LOG(fplog, LOG_ERROR, "config have not path_outdir!\n"); return -1; } snprintf(path->outdir, sizeof(path->outdir), "%s", v); v = myconfig_get_value("path_bkdir"); if (v == NULL) { LOG(fplog, LOG_ERROR, "config have not path_bkdir!\n"); return -1; } snprintf(path->bkdir, sizeof(path->bkdir), "%s", v); v = myconfig_get_value("path_fulldir"); if (v == NULL) { LOG(fplog, LOG_ERROR, "config have not path_fulldir!\n"); return -1; } snprintf(path->fulldir, sizeof(path->fulldir), "%s", v); v = myconfig_get_value("path_tmpdir"); if (v == NULL) { LOG(fplog, LOG_ERROR, "config have not path_tmpdir!\n"); return -1; } snprintf(path->tmpdir, sizeof(path->tmpdir), "%s", v); memset(taskfile_prefix, 0, sizeof(taskfile_prefix)); v = myconfig_get_value("path_taskfile_prefix"); if (v == NULL) snprintf(taskfile_prefix, sizeof(taskfile_prefix), "%s", "/home/webadm/"); else snprintf(taskfile_prefix, sizeof(taskfile_prefix), "%s", v); prefix_len = strlen(taskfile_prefix); return 0; }