MyGUI
3.2.1
|
00001 /* 00002 * This source file is part of MyGUI. For the latest info, see http://mygui.info/ 00003 * Distributed under the MIT License 00004 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT) 00005 */ 00006 00007 #include "MyGUI_Precompiled.h" 00008 #include "MyGUI_LogSource.h" 00009 00010 namespace MyGUI 00011 { 00012 00013 LogSource::LogSource() : 00014 mFilter(nullptr) 00015 { 00016 } 00017 00018 LogSource::~LogSource() 00019 { 00020 } 00021 00022 void LogSource::setLogFilter(ILogFilter* _filter) 00023 { 00024 mFilter = _filter; 00025 } 00026 00027 void LogSource::addLogListener(ILogListener* _lestener) 00028 { 00029 mListeners.push_back(_lestener); 00030 } 00031 00032 void LogSource::open() 00033 { 00034 for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener) 00035 (*listener)->open(); 00036 } 00037 00038 void LogSource::close() 00039 { 00040 for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener) 00041 (*listener)->close(); 00042 } 00043 00044 void LogSource::flush() 00045 { 00046 for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener) 00047 (*listener)->flush(); 00048 } 00049 00050 void LogSource::log(const std::string& _section, LogLevel _level, const struct tm* _time, const std::string& _message, const char* _file, int _line) 00051 { 00052 if (mFilter != nullptr) 00053 { 00054 if (!mFilter->shouldLog(_section, _level, _time, _message, _file, _line)) 00055 return; 00056 } 00057 00058 for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener) 00059 (*listener)->log(_section, _level, _time, _message, _file, _line); 00060 } 00061 00062 } // namespace MyGUI