00001 /* 00002 ----------------------------------------------------------------------------- 00003 This source file is part of OGRE 00004 (Object-oriented Graphics Rendering Engine) 00005 For the latest info, see http://www.ogre3d.org/ 00006 00007 Copyright (c) 2000-2006 Torus Knot Software Ltd 00008 Also see acknowledgements in Readme.html 00009 00010 This program is free software; you can redistribute it and/or modify it under 00011 the terms of the GNU Lesser General Public License as published by the Free Software 00012 Foundation; either version 2 of the License, or (at your option) any later 00013 version. 00014 00015 This program is distributed in the hope that it will be useful, but WITHOUT 00016 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00017 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. 00018 00019 You should have received a copy of the GNU Lesser General Public License along with 00020 this program; if not, write to the Free Software Foundation, Inc., 59 Temple 00021 Place - Suite 330, Boston, MA 02111-1307, USA, or go to 00022 http://www.gnu.org/copyleft/lesser.txt. 00023 00024 You may alternatively use this source under the terms of a specific version of 00025 the OGRE Unrestricted License provided you have obtained such a license from 00026 Torus Knot Software Ltd. 00027 ----------------------------------------------------------------------------- 00028 */ 00029 00030 #ifndef __Log_H__ 00031 #define __Log_H__ 00032 00033 #include "OgrePrerequisites.h" 00034 00035 namespace Ogre { 00036 00037 // LogMessageLevel + LoggingLevel > OGRE_LOG_THRESHOLD = message logged 00038 #define OGRE_LOG_THRESHOLD 4 00039 00042 enum LoggingLevel 00043 { 00044 LL_LOW = 1, 00045 LL_NORMAL = 2, 00046 LL_BOREME = 3 00047 }; 00048 00051 enum LogMessageLevel 00052 { 00053 LML_TRIVIAL = 1, 00054 LML_NORMAL = 2, 00055 LML_CRITICAL = 3 00056 }; 00057 00059 class LogListener 00060 { 00061 public: 00062 virtual ~LogListener() {}; 00063 00076 virtual void messageLogged( const String& message, LogMessageLevel lml, bool maskDebug, const String &logName ) = 0; 00077 }; 00078 00085 class _OgreExport Log 00086 { 00087 protected: 00088 std::ofstream mfpLog; 00089 LoggingLevel mLogLevel; 00090 bool mDebugOut; 00091 bool mSuppressFile; 00092 String mLogName; 00093 00094 typedef std::vector<LogListener*> mtLogListener; 00095 mtLogListener mListeners; 00096 00097 public: 00098 OGRE_AUTO_MUTEX // public to allow external locking 00103 Log( const String& name, bool debugOutput = true, bool suppressFileOutput = false); 00104 00109 ~Log(); 00110 00112 const String& getName() const { return mLogName; } 00114 bool isDebugOutputEnabled() const { return mDebugOut; } 00116 bool isFileOutputSuppressed() const { return mSuppressFile; } 00117 00121 void logMessage( const String& message, LogMessageLevel lml = LML_NORMAL, bool maskDebug = false ); 00122 00127 void setLogDetail(LoggingLevel ll); 00130 LoggingLevel getLogDetail() const { return mLogLevel; } 00137 void addListener(LogListener* listener); 00138 00145 void removeListener(LogListener* listener); 00146 }; 00147 } 00148 00149 #endif
Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Jul 8 15:20:07 2007