X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fdebug%2Flogstream.cxx;h=664038b93a713e57ebcfb368ca0ea5407e236dba;hb=9f88b077ee5294c4ad898016b7d66682466bbafb;hp=0a360941dcf0a63965a66114e6df48315306b04f;hpb=9f5412fa9d040a9a15dc30579a8e3b8941b6448f;p=simgear.git diff --git a/simgear/debug/logstream.cxx b/simgear/debug/logstream.cxx index 0a360941..664038b9 100644 --- a/simgear/debug/logstream.cxx +++ b/simgear/debug/logstream.cxx @@ -20,18 +20,31 @@ // // $Id$ +#include + #include "logstream.hxx" -logstream *global_logstream = NULL; +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 ) @@ -90,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; +}