void setuplog(const char *logstr, const char *logfile) { char *ptr, *save; char *logtype, *loglevel; char c; save = ptr = strdup(logstr); ptr = strtok(ptr, ", "); while (ptr) { while (*ptr) { while (*ptr && isspace(*ptr)) ptr++; logtype = ptr; ptr = strpbrk(ptr, ":"); if (!ptr) break; *ptr = 0; ptr++; loglevel = ptr; while (*ptr && !isspace(*ptr)) ptr++; c = *ptr; *ptr = 0; setuplog_internal(loglevel, logtype, logfile); *ptr = c; } ptr = strtok(NULL, ", "); } free(save); }
void setuplog(const char *logstr) { char *ptr, *ptrbak, *logtype, *loglevel = NULL, *filename = NULL; ptr = strdup(logstr); ptrbak = ptr; /* logtype */ logtype = ptr; /* get loglevel */ ptr = strpbrk(ptr, " \t"); if (ptr) { *ptr++ = 0; while (*ptr && isspace(*ptr)) ptr++; loglevel = ptr; /* get filename */ ptr = strpbrk(ptr, " \t"); if (ptr) { *ptr++ = 0; while (*ptr && isspace(*ptr)) ptr++; } filename = ptr; if (filename && *filename == 0) filename = NULL; } /* finally call setuplog, filename can be NULL */ setuplog_internal(loglevel, logtype, filename); free(ptrbak); }
void unsetuplog(const char *logstr) { char *str, *logtype, *filename; str = strdup(logstr); /* logtype */ logtype = str; /* get filename, can be NULL */ strtok(str, " \t"); filename = strtok(NULL, " \t"); /* finally call setuplog, filename can be NULL */ setuplog_internal(NULL, str, filename); free(str); }