Orxonox  0.0.5 Codename: Arcturus
LogWriter.h
Go to the documentation of this file.
1 /*
2  * ORXONOX - the hottest 3D action shooter ever to exist
3  * > www.orxonox.net <
4  *
5  *
6  * License notice:
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  *
22  * Author:
23  * Fabian 'x3n' Landau
24  * Co-authors:
25  * ...
26  *
27  */
28 
35 #ifndef _LogWriter_H__
36 #define _LogWriter_H__
37 
38 #include "util/UtilPrereqs.h"
39 
40 #include <fstream>
41 
42 #include "BaseWriter.h"
43 
44 namespace orxonox
45 {
56  {
57  public:
58  LogWriter();
59  virtual ~LogWriter();
60 
61  void setLogDirectory(const std::string& directory);
62 
64  inline std::string getPath() const
65  { return this->directory_ + '/' + this->filename_; }
67  inline const std::ofstream& getFile() const
68  { return this->file_; }
69 
70  protected:
71  virtual void printLine(const std::string& line, OutputLevel level) override;
72 
73  private:
74  // non-copyable:
75  LogWriter(const LogWriter&) = delete;
76  LogWriter& operator=(const LogWriter&) = delete;
77 
78  void openFile();
79  void closeFile();
80 
81  void archive(int index = 0);
82  std::string getArchivedPath(int index) const;
83 
86  std::ofstream file_;
87  };
88 }
89 
90 #endif /* _LogWriter_H__ */
#define _UtilExport
Definition: UtilPrereqs.h:60
std::string getPath() const
Returns the path to the logfile.
Definition: LogWriter.h:64
::std::string string
Definition: gtest-port.h:756
std::string directory_
The directory where the log-file resided (without file-name)
Definition: LogWriter.h:85
OutputLevel
Output levels define type and importance of an output message.
Definition: OutputDefinitions.h:84
const std::ofstream & getFile() const
Returns the open file stream.
Definition: LogWriter.h:67
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
Shared library macros, enums, constants and forward declarations for the util library ...
Declaration of the BaseWriter class, the base of all output writers.
BaseWriter is an output listener and makes the accepted output levels and contexts configurable...
Definition: BaseWriter.h:65
std::ofstream file_
The output file stream.
Definition: LogWriter.h:86
The LogWriter class inherits from BaseWriter and writes output to a log-file.
Definition: LogWriter.h:55
std::string filename_
The name of the log-file (without directory)
Definition: LogWriter.h:84