예제 #1
0
파일: logger.c 프로젝트: NTmatter/Netatalk
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);
}
예제 #2
0
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);
}
예제 #3
0
파일: logger.c 프로젝트: hajuuk/R7000
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);
}