// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
-// You should have received a copy of the GNU Library General Public
-// License along with this library; if not, write to the
-// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-// Boston, MA 02111-1307, USA.
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// $Id$
+#include <iostream>
+
#include "logstream.hxx"
+logstream *logstream::global_logstream = 0;
+
bool logbuf::logging_enabled = true;
+#ifdef _MSC_VER
+ bool logbuf::has_console = true;
+#endif
sgDebugClass logbuf::logClass = SG_NONE;
sgDebugPriority logbuf::logPriority = SG_INFO;
streambuf* logbuf::sbuf = NULL;
logPriority = p;
}
+void
+logbuf::set_log_classes (sgDebugClass c)
+{
+ logClass = c;
+}
+
+sgDebugClass
+logbuf::get_log_classes ()
+{
+ return logClass;
+}
+
+void
+logbuf::set_log_priority (sgDebugPriority p)
+{
+ logPriority = p;
+}
+
+sgDebugPriority
+logbuf::get_log_priority ()
+{
+ return logPriority;
+}
+
void
logstream::setLogLevels( sgDebugClass c, sgDebugPriority p )
{
logbuf::set_log_level( c, p );
}
+void
+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);
+}