X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fdebug%2Flogstream.cxx;h=664038b93a713e57ebcfb368ca0ea5407e236dba;hb=9f88b077ee5294c4ad898016b7d66682466bbafb;hp=255eae07a88542f5580d6f48e3ae72d5cabd49ad;hpb=dcb95d131bc6aef1abe25d1f415e309f06e52436;p=simgear.git diff --git a/simgear/debug/logstream.cxx b/simgear/debug/logstream.cxx index 255eae07..664038b9 100644 --- a/simgear/debug/logstream.cxx +++ b/simgear/debug/logstream.cxx @@ -20,15 +20,31 @@ // // $Id$ +#include + #include "logstream.hxx" -logstream *global_logstream = NULL; +logstream *logstream::global_logstream = 0; bool logbuf::logging_enabled = true; +#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 ) @@ -87,3 +103,12 @@ logstream::setLogLevels( sgDebugClass c, sgDebugPriority p ) logbuf::set_log_level( c, p ); } +logstream * +logstream::initGlobalLogstream() +{ + // Force initialization of cerr. + static std::ios_base::Init initializer; + if( !global_logstream ) + global_logstream = new logstream(std::cerr); + return global_logstream; +}