Skip to content
Permalink
Browse files

log: initialize logging earlier

It turns out to be possible to initialize logging earlier by
grabbing the log from a global ngx_cycle structure.

This makes us start logging earlier, yet loses the
"No threading detected ..." messages both from stderr and
in error.log when nginx initially starts.

With this change, these messages will now be logged as we start
logging earlier:

"
flush
.
"

These originate from SystemCachePath::CacheKey which appends
newlines to the key, and the resulting cache key ends up being
logged. We might want to change that, because the resulting
lines in error.log look weird and might raise questions.

Fixes #895
  • Loading branch information
oschaaf committed Dec 11, 2015
1 parent f88a076 commit 37e1c3618a54da075b79acdb8074cb5f1599f537
Showing with 7 additions and 5 deletions.
  1. +3 −2 src/ngx_pagespeed.cc
  2. +3 −2 src/ngx_rewrite_driver_factory.cc
  3. +1 −1 src/ngx_rewrite_driver_factory.h
@@ -983,6 +983,7 @@ void* ps_create_main_conf(ngx_conf_t* cf) {
"" /* hostname, not used */,
-1 /* port, not used */);
active_driver_factory = cfg_m->driver_factory;
active_driver_factory->LoggingInit(ngx_cycle->log, false);
cfg_m->driver_factory->Init();
ps_set_conf_cleanup_handler(cf, ps_cleanup_main_conf, cfg_m);
return cfg_m;
@@ -3044,7 +3045,7 @@ ngx_int_t ps_init_module(ngx_cycle_t* cycle) {
return NGX_ERROR;
}

cfg_m->driver_factory->LoggingInit(cycle->log);
cfg_m->driver_factory->LoggingInit(cycle->log, true);
cfg_m->driver_factory->RootInit();
} else {
delete cfg_m->driver_factory;
@@ -3076,7 +3077,7 @@ ngx_int_t ps_init_child_process(ngx_cycle_t* cycle) {

// ChildInit() will initialise all ServerContexts, which we need to
// create ProxyFetchFactories below
cfg_m->driver_factory->LoggingInit(cycle->log);
cfg_m->driver_factory->LoggingInit(cycle->log, true);
cfg_m->driver_factory->ChildInit();

ngx_http_core_main_conf_t* cmcf = static_cast<ngx_http_core_main_conf_t*>(
@@ -208,10 +208,11 @@ void NgxRewriteDriverFactory::StartThreads() {
threads_started_ = true;
}

void NgxRewriteDriverFactory::LoggingInit(ngx_log_t* log) {
void NgxRewriteDriverFactory::LoggingInit(
ngx_log_t* log, bool may_install_crash_handler) {
log_ = log;
net_instaweb::log_message_handler::Install(log);
if (install_crash_handler()) {
if (may_install_crash_handler && install_crash_handler()) {
NgxMessageHandler::InstallCrashHandler(log);
}
ngx_message_handler_->set_log(log);
@@ -115,7 +115,7 @@ class NgxRewriteDriverFactory : public SystemRewriteDriverFactory {
return process_script_variables_;
}

void LoggingInit(ngx_log_t* log);
void LoggingInit(ngx_log_t* log, bool may_install_crash_handler);

virtual void ShutDownMessageHandlers();

0 comments on commit 37e1c36

Please sign in to comment.