log.c -- 看文档,还不如看代码来的简单。[3]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 liangbowen 的 blog

        procnew = (apr_proc_t *)apr_pcalloc(p, sizeof(*procnew));
        rc = apr_proc_create(procnew, pname, (const char * const *)args,
                             null, procattr, p);

        if (rc == apr_success) {
            apr_pool_note_subprocess(p, procnew, apr_kill_after_timeout);
            (*fpin) = procnew->in;
        }
    }

    return rc;
}

static int open_error_log(server_rec *s, apr_pool_t *p)
{
    const char *fname;
    int rc;

    if (*s->error_fname == '|') {
        apr_file_t *dummy = null;

        /* this starts a new process... */
        rc = log_child (p, s->error_fname + 1, &dummy);
        if (rc != apr_success) {
            ap_log_error(aplog_mark, aplog_startup, rc, null,
                         "couldn't start errorlog process");
            return done;
        }

        s->error_log = dummy;
    }

#ifdef have_syslog
    else if (!strncasecmp(s->error_fname, "syslog", 6)) {
        if ((fname = strchr(s->error_fname, ':'))) {
            const trans *fac;

            fname++;
            for (fac = facilities; fac->t_name; fac++) {
                if (!strcasecmp(fname, fac->t_name)) {
                    openlog(ap_server_argv0, log_ndelay|log_cons|log_pid,
                            fac->t_val);
                    s->error_log = null;
                    return ok;
                }
            }
        }
        else {
            openlog(ap_server_argv0, log_ndelay|log_cons|log_pid, log_local7);
        }

        s->error_log = null;
    }
#endif
    else {
        fname = ap_server_root_relative(p, s->error_fname);
        if (!fname) {
            ap_log_error(aplog_mark, aplog_startup, apr_ebadpath, null,
                         "%s: invalid error log path %s.",
                         ap_server_argv0, s->error_fname);
            return done;
        }
        if ((rc = apr_file_open(&s->error_log, fname,
                               apr_append | apr_read | apr_write | apr_create,

本文关键:log.c -- 看文档,还不如看代码来的简单。
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top