return *this;
}
+extern logstream *global_logstream;
/**
* \relates logstream
inline logstream&
sglog()
{
- static logstream logstrm( cerr );
- return logstrm;
+ if (global_logstream == NULL) {
+
+#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
+ **/
+ cout << "Using Mac OS X hack for initializing C++ stdio..." << endl;
+#endif
+ global_logstream = new logstream (cerr);
+ }
+
+ return *global_logstream;
}
#include <string>
#include "Debug/logstream.hxx"
+class Test {
+
+ public:
+ Test() {
+ //cout << "Cout seems to work" << endl;
+ //cerr << "Cerr seems to work" << endl;
+
+ sglog().setLogLevels( SG_ALL, SG_INFO );
+
+ SG_LOG(SG_EVENT, SG_INFO, "Test::Test" << "foo");
+ }
+
+};
+
+Test test;
+
int
main( int argc, char* argv[] )
{
- fglog().setLogLevels( SG_ALL, SG_INFO );
+ sglog().setLogLevels( SG_ALL, SG_INFO );
- SG_LOG( FG_TERRAIN, FG_BULK, "terrain::bulk" ); // shouldnt appear
- SG_LOG( FG_TERRAIN, SG_DEBUG, "terrain::debug" ); // shouldnt appear
- SG_LOG( FG_TERRAIN, SG_INFO, "terrain::info" );
- SG_LOG( FG_TERRAIN, FG_WARN, "terrain::warn" );
- SG_LOG( FG_TERRAIN, SG_ALERT, "terrain::alert" );
+ //SG_LOG( FG_TERRAIN, FG_BULK, "terrain::bulk" ); // shouldnt appear
+ //SG_LOG( FG_TERRAIN, SG_DEBUG, "terrain::debug" ); // shouldnt appear
+ //SG_LOG( FG_TERRAIN, SG_INFO, "terrain::info" );
+ //SG_LOG( FG_TERRAIN, FG_WARN, "terrain::warn" );
+ //SG_LOG( FG_TERRAIN, SG_ALERT, "terrain::alert" );
int i = 12345;
long l = 54321L;