• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • Examples
  • File List
  • Globals

MyGUI_LogManager.h

Go to the documentation of this file.
00001 
00007 /*
00008     This file is part of MyGUI.
00009     
00010     MyGUI is free software: you can redistribute it and/or modify
00011     it under the terms of the GNU Lesser General Public License as published by
00012     the Free Software Foundation, either version 3 of the License, or
00013     (at your option) any later version.
00014     
00015     MyGUI is distributed in the hope that it will be useful,
00016     but WITHOUT ANY WARRANTY; without even the implied warranty of
00017     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018     GNU Lesser General Public License for more details.
00019     
00020     You should have received a copy of the GNU Lesser General Public License
00021     along with MyGUI.  If not, see <http://www.gnu.org/licenses/>.
00022 */
00023 #ifndef __MYGUI_LOG_MANAGER_H__
00024 #define __MYGUI_LOG_MANAGER_H__
00025 
00026 #include "MyGUI_Prerequest.h"
00027 #include "MyGUI_LogStream.h"
00028 
00029 namespace MyGUI
00030 {
00031 
00032     #define MYGUI_LOGGING(section, level, text) \
00033         MyGUI::LogManager::out(section, MyGUI::LogManager::level) \
00034         << text \
00035         << MyGUI::LogManager::info(__FILE__, __LINE__) \
00036         << MyGUI::LogManager::end()
00037 
00038     class MYGUI_EXPORT LogManager
00039     {
00040 
00041     public:
00042         enum LogLevel
00043         {
00044             Info,
00045             Warning,
00046             Error,
00047             Critical,
00048             EndLogLevel
00049         };
00050 
00051     public:
00052         static void shutdown();
00053         static void initialise();
00054 
00055         static void registerSection(const std::string& _section, const std::string& _file);
00056         static void unregisterSection(const std::string& _section);
00057 
00058         static LogStream& out(const std::string& _section, LogLevel _level);
00059         static const std::string& info(const char * _file /* = __FILE__*/, int _line /* = __LINE__*/);
00060 
00061         static const LogStream::LogStreamEnd& end();
00062 
00063         // set logging enabled on std output device
00064         static void setSTDOutputEnabled(bool _enable);
00065         static bool getSTDOutputEnabled();
00066 
00067     private:
00068         LogManager();
00069         ~LogManager();
00070 
00071     public:
00072         static const std::string General;
00073         static const std::string separator;
00074 
00075         static LogStream::LogStreamEnd endl;
00076         static const std::string LevelsName[EndLogLevel];
00077 
00078     private:
00079         static LogManager * msInstance;
00080         typedef std::map<std::string, LogStream*>  MapLogStream;
00081         MapLogStream mMapSectionFileName;
00082         bool mSTDOut;
00083     };
00084 
00085 } // namespace MyGUI
00086 
00087 #endif // __MYGUI_LOG_MANAGER_H__

Generated on Sun Jan 30 2011 for MyGUI by  doxygen 1.7.1