]> git.mxchange.org Git - simgear.git/blobdiff - simgear/debug/logstream.cxx
remove old .cvsignore files
[simgear.git] / simgear / debug / logstream.cxx
index 0a6e64f461c22358843f94d6e526665462fde686..664038b93a713e57ebcfb368ca0ea5407e236dba 100644 (file)
 // 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 _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 )
@@ -56,9 +73,42 @@ logbuf::set_log_level( sgDebugClass c, sgDebugPriority p )
     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 );
 }
 
+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;
+}