diff --git a/include/transport/logging.h b/include/transport/logging.h index d31031039a1d4ab3f34064ade76a2c6fd9b31206..d79fa8a50c9d41015ca8ec9e9ae5e7bd33c4b5ae 100644 --- a/include/transport/logging.h +++ b/include/transport/logging.h @@ -57,6 +57,7 @@ namespace Logging { void initBackendLogging(Config *config); void initMainLogging(Config *config); void shutdownLogging(); +void redirect_stderr(); } diff --git a/spectrum/src/main.cpp b/spectrum/src/main.cpp index 7efe1e98a1ec2b40daf30602a482d924e7ab95ca..75169b1a548d76cb3746196d14bc9b453d434460 100644 --- a/spectrum/src/main.cpp +++ b/spectrum/src/main.cpp @@ -315,6 +315,7 @@ int main(int argc, char **argv) } #endif + Logging::initMainLogging(&config); #ifndef WIN32 if (!CONFIG_STRING(&config, "service.group").empty() ||!CONFIG_STRING(&config, "service.user").empty() ) { @@ -377,9 +378,7 @@ int main(int argc, char **argv) return -1; } - // Logging has to be initialized after all std:cerr output here, because - // it forwards std::cerr to log file. - Logging::initMainLogging(&config); + Logging::redirect_stderr(); UserManager userManager(&transport, &userRegistry, storageBackend); userManager_ = &userManager; diff --git a/src/logging.cpp b/src/logging.cpp index d998a505ae8305a4452f454aecaf21d781639ba6..f724993ef91b34f51756ffe97573e1147bd6be39 100644 --- a/src/logging.cpp +++ b/src/logging.cpp @@ -166,19 +166,23 @@ static void initLogging(Config *config, std::string key) { log4cxx::PropertyConfigurator::configure(p); } - - intercepter_cerr = new intercept_stream(std::cerr, "cerr"); - intercepter_cout = new intercept_stream(std::cout, "cout"); } void initBackendLogging(Config *config) { initLogging(config, "logging.backend_config"); + + redirect_stderr(); } void initMainLogging(Config *config) { initLogging(config, "logging.config"); } +void redirect_stderr() { + intercepter_cerr = new intercept_stream(std::cerr, "cerr"); + intercepter_cout = new intercept_stream(std::cout, "cout"); +} + void shutdownLogging() { delete intercepter_cerr; delete intercepter_cout; @@ -194,6 +198,10 @@ void initMainLogging(Config */*config*/) { void shutdownLogging() { +} + +void redirect_stderr() { + } #endif /* WITH_LOG4CXX */