MyGUI  3.2.0
MyGUI_FileLogListener.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 #include "MyGUI_Precompiled.h"
23 #include "MyGUI_FileLogListener.h"
24 #include <iomanip>
25 #include <time.h>
26 
27 namespace MyGUI
28 {
29 
31  {
32  }
33 
35  {
36  }
37 
39  {
40  /*time_t ctTime;
41  time(&ctTime);
42  struct tm *currentTime;
43  currentTime = localtime(&ctTime);*/
44 
45  mStream.open(mFileName.c_str(), std::ios_base::out);
46 
47  /*log(
48  "Log",
49  LogLevel::Info,
50  currentTime,
51  LogStream()
52  << "Log file created "
53  << std::setw(2) << std::setfill('0') << currentTime->tm_mday << "."
54  << std::setw(2) << std::setfill('0') << (currentTime->tm_mon + 1) << "."
55  << std::setw(2) << std::setfill('0') << (currentTime->tm_year + 1900) <<
56  LogStream::End(),
57  __FILE__, __LINE__);*/
58  }
59 
61  {
62  if (mStream.is_open())
63  mStream.close();
64  }
65 
67  {
68  if (mStream.is_open())
69  mStream.flush();
70  }
71 
72  void FileLogListener::log(const std::string& _section, LogLevel _level, const struct tm* _time, const std::string& _message, const char* _file, int _line)
73  {
74  if (mStream.is_open())
75  {
76  const char* separator = " | ";
77  mStream << std::setw(2) << std::setfill('0') << _time->tm_hour << ":"
78  << std::setw(2) << std::setfill('0') << _time->tm_min << ":"
79  << std::setw(2) << std::setfill('0') << _time->tm_sec << separator
80  << _section << separator << _level.print() << separator
81  << _message << separator << _file << separator << _line << std::endl;
82  }
83  }
84 
85  void FileLogListener::setFileName(const std::string& _value)
86  {
87  mFileName = _value;
88  }
89 
90  const std::string& FileLogListener::getFileName() const
91  {
92  return mFileName;
93  }
94 
95 } // namespace MyGUI
const std::string & getFileName() const
virtual void log(const std::string &_section, LogLevel _level, const struct tm *_time, const std::string &_message, const char *_file, int _line)
std::string print() const
void setFileName(const std::string &_value)