MyGUI  3.2.0
MyGUI_LogSource.cpp
Go to the documentation of this file.
1 
6 /*
7  This file is part of MyGUI.
8 
9  MyGUI is free software: you can redistribute it and/or modify
10  it under the terms of the GNU Lesser General Public License as published by
11  the Free Software Foundation, either version 3 of the License, or
12  (at your option) any later version.
13 
14  MyGUI is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU Lesser General Public License for more details.
18 
19  You should have received a copy of the GNU Lesser General Public License
20  along with MyGUI. If not, see <http://www.gnu.org/licenses/>.
21 */
22 
23 #include "MyGUI_Precompiled.h"
24 #include "MyGUI_LogSource.h"
25 
26 namespace MyGUI
27 {
28 
30  mFilter(nullptr)
31  {
32  }
33 
35  {
36  }
37 
39  {
40  mFilter = _filter;
41  }
42 
44  {
45  mListeners.push_back(_lestener);
46  }
47 
49  {
50  for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener)
51  (*listener)->open();
52  }
53 
55  {
56  for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener)
57  (*listener)->close();
58  }
59 
61  {
62  for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener)
63  (*listener)->flush();
64  }
65 
66  void LogSource::log(const std::string& _section, LogLevel _level, const struct tm* _time, const std::string& _message, const char* _file, int _line)
67  {
68  if (mFilter != nullptr)
69  {
70  if (!mFilter->shouldLog(_section, _level, _time, _message, _file, _line))
71  return;
72  }
73 
74  for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener)
75  (*listener)->log(_section, _level, _time, _message, _file, _line);
76  }
77 
78 } // namespace MyGUI