MyGUI
3.2.0
|
00001 00006 /* 00007 This file is part of MyGUI. 00008 00009 MyGUI is free software: you can redistribute it and/or modify 00010 it under the terms of the GNU Lesser General Public License as published by 00011 the Free Software Foundation, either version 3 of the License, or 00012 (at your option) any later version. 00013 00014 MyGUI is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 GNU Lesser General Public License for more details. 00018 00019 You should have received a copy of the GNU Lesser General Public License 00020 along with MyGUI. If not, see <http://www.gnu.org/licenses/>. 00021 */ 00022 00023 #include "MyGUI_Precompiled.h" 00024 #include "MyGUI_LogSource.h" 00025 00026 namespace MyGUI 00027 { 00028 00029 LogSource::LogSource() : 00030 mFilter(nullptr) 00031 { 00032 } 00033 00034 LogSource::~LogSource() 00035 { 00036 } 00037 00038 void LogSource::setLogFilter(ILogFilter* _filter) 00039 { 00040 mFilter = _filter; 00041 } 00042 00043 void LogSource::addLogListener(ILogListener* _lestener) 00044 { 00045 mListeners.push_back(_lestener); 00046 } 00047 00048 void LogSource::open() 00049 { 00050 for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener) 00051 (*listener)->open(); 00052 } 00053 00054 void LogSource::close() 00055 { 00056 for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener) 00057 (*listener)->close(); 00058 } 00059 00060 void LogSource::flush() 00061 { 00062 for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener) 00063 (*listener)->flush(); 00064 } 00065 00066 void LogSource::log(const std::string& _section, LogLevel _level, const struct tm* _time, const std::string& _message, const char* _file, int _line) 00067 { 00068 if (mFilter != nullptr) 00069 { 00070 if (!mFilter->shouldLog(_section, _level, _time, _message, _file, _line)) 00071 return; 00072 } 00073 00074 for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener) 00075 (*listener)->log(_section, _level, _time, _message, _file, _line); 00076 } 00077 00078 } // namespace MyGUI