YAGE  v0.1.3.0
Yet Another Game Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
logger.h
Go to the documentation of this file.
1 
9 #ifndef YAGE_CORE_LOGGER_H
10 #define YAGE_CORE_LOGGER_H
11 
12 #include <memory>
13 #include <string>
14 #include <vector>
15 
16 namespace yage
17 {
18 
19 class Active;
20 class LogMessage;
21 class LogSink;
22 
23 class Logger
24 {
25 public:
26  explicit Logger();
27 
28  LogMessage operator()(const std::string &fileName, int lineNum);
29 
30  void flush(const LogMessage *msg);
31  void add(const LogSink &sink);
32  void remove(const LogSink &sink);
33  void clear();
34 
35  static Logger &instance();
36 
37 private:
38  std::vector<LogSink> sinks_;
39  std::unique_ptr<Active> active_;
40 };
41 
42 } // namespace yage
43 
44 #define gLog (yage::Logger::instance()(__FILE__, __LINE__))
45 
46 #endif
Logger()
Definition: logger.cpp:22
Definition: logmessage.h:21
std::unique_ptr< Active > active_
Definition: logger.h:39
void clear()
Definition: logger.cpp:61
std::vector< LogSink > sinks_
Definition: logger.h:38
static Logger & instance()
Definition: logger.cpp:66
Definition: logger.h:23
void flush(const LogMessage *msg)
Definition: logger.cpp:33
LogMessage operator()(const std::string &fileName, int lineNum)
Definition: logger.cpp:28
void add(const LogSink &sink)
Definition: logger.cpp:47
Definition: logsink.h:23