X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fdebug%2Flogstream.cxx;h=664038b93a713e57ebcfb368ca0ea5407e236dba;hb=ad667be0d7100670ecc0a274ae8c567749ef0add;hp=8f6104a8d2780157b893948f69e4c8d1958c44be;hpb=d754e616a57e077388af62dfdc35e0e617bf5594;p=simgear.git diff --git a/simgear/debug/logstream.cxx b/simgear/debug/logstream.cxx index 8f6104a8..664038b9 100644 --- a/simgear/debug/logstream.cxx +++ b/simgear/debug/logstream.cxx @@ -27,13 +27,24 @@ logstream *logstream::global_logstream = 0; bool logbuf::logging_enabled = true; -#ifdef _MSC_VER +#ifdef _WIN32 bool logbuf::has_console = true; #endif sgDebugClass logbuf::logClass = SG_NONE; sgDebugPriority logbuf::logPriority = SG_INFO; streambuf* logbuf::sbuf = NULL; +namespace { +struct ignore_me +{ + ignore_me() + { + logstream::initGlobalLogstream(); + } +}; +static ignore_me im; +} + logbuf::logbuf() { // if ( sbuf == NULL ) @@ -92,10 +103,12 @@ logstream::setLogLevels( sgDebugClass c, sgDebugPriority p ) logbuf::set_log_level( c, p ); } -void +logstream * logstream::initGlobalLogstream() { // Force initialization of cerr. static std::ios_base::Init initializer; - global_logstream = new logstream(std::cerr); + if( !global_logstream ) + global_logstream = new logstream(std::cerr); + return global_logstream; }