Set up stderr logging explictly early in initialization so that a pool is

available for creating the APR representation of stderr.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87583 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jeff Trawick
2001-01-04 18:22:50 +00:00
parent 5c30786f06
commit a65b522fb9
4 changed files with 20 additions and 1 deletions

View File

@ -113,6 +113,12 @@ extern "C" {
#define APLOG_MARK __FILE__,__LINE__
/**
* Set up for logging to stderr.
* @param p The pool to allocate out of
*/
void ap_open_stderr_log(apr_pool_t *p);
/**
* Open the error log and replace stderr with it.
* @param s_main The main server

View File

@ -418,3 +418,4 @@ EXPORTS
ap_xml_insert_uri
ap_os_create_privileged_process
ap_open_stderr_log

View File

@ -174,6 +174,13 @@ static const TRANS priorities[] = {
{NULL, -1},
};
static apr_file_t *stderr_log;
void ap_open_stderr_log(apr_pool_t *p)
{
apr_open_stderr(&stderr_log, p);
}
static int log_child(apr_pool_t *p, const char *progname,
apr_file_t **fpin)
{
@ -346,7 +353,7 @@ static void log_error_core(const char *file, int line, int level,
if (((level & APLOG_LEVELMASK) != APLOG_NOTICE) &&
((level & APLOG_LEVELMASK) > DEFAULT_LOGLEVEL))
return;
apr_open_stderr(&logf, pool);
logf = stderr_log;
}
else if (s->error_log) {
/*

View File

@ -214,6 +214,9 @@ static process_rec *create_process(int argc, const char * const *argv)
stat = apr_create_pool(&cntx, NULL);
if (stat != APR_SUCCESS) {
/* XXX From the time that we took away the NULL pool->malloc mapping
* we have been unable to log here without segfaulting.
*/
ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, 0, NULL,
"apr_create_pool() failed to create "
"initial context");
@ -221,6 +224,8 @@ static process_rec *create_process(int argc, const char * const *argv)
exit(1);
}
ap_open_stderr_log(cntx);
process = apr_palloc(cntx, sizeof(process_rec));
process->pool = cntx;