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 )
logbuf::set_log_level( c, p );
}
-void
+logstream *
logstream::initGlobalLogstream()
{
// Force initialization of cerr.
static std::ios_base::Init initializer;
- // XXX Is the following still necessary?
-#ifdef __APPLE__
- /**
- * There appears to be a bug in the C++ runtime in Mac OS X that
- * will crash if certain funtions are called (in this case
- * cerr.rdbuf()) during static initialization of a class. This
- * print statement is hack to kick the library in the pants so it
- * won't crash when cerr.rdbuf() is first called -DW
- **/
- std::cout << "Using Mac OS X hack for initializing C++ stdio..."
- << std::endl;
-#endif
- global_logstream = new logstream(std::cerr);
+ if( !global_logstream )
+ global_logstream = new logstream(std::cerr);
+ return global_logstream;
}