YAGE  v0.3.1
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 /* ----------------------------------------------------------------------------
2  * logger.h
3  *
4  * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com>
5  * MIT License, see LICENSE file for more details.
6  * ----------------------------------------------------------------------------
7  */
8 
9 #ifndef YAGE_CORE_LOGGER_H
10 #define YAGE_CORE_LOGGER_H
11 
12 #include <yage/util/active.h>
13 
14 #include <memory>
15 #include <string>
16 #include <vector>
17 
18 namespace yage
19 {
20 
21 class LogMessage;
22 class LogSink;
23 
24 class Logger
25 {
26 public:
27  explicit Logger();
28 
29  LogMessage operator()(const std::string &fileName, int lineNum);
30 
31  void flush(const LogMessage *msg);
32  void add(const LogSink &sink);
33  void remove(const LogSink &sink);
34  void clear();
35 
36  static Logger &instance();
37 
38 private:
39  std::vector<LogSink> sinks_;
40  std::unique_ptr<Active> active_;
41 };
42 
43 } // namespace yage
44 
45 #define gLog (yage::Logger::instance()(__FILE__, __LINE__))
46 
47 #endif
Logger()
Definition: logger.cpp:20
Definition: logmessage.h:21
std::unique_ptr< Active > active_
Definition: logger.h:40
void clear()
Definition: logger.cpp:59
std::vector< LogSink > sinks_
Definition: logger.h:39
static Logger & instance()
Definition: logger.cpp:64
Definition: logger.h:24
void flush(const LogMessage *msg)
Definition: logger.cpp:31
LogMessage operator()(const std::string &fileName, int lineNum)
Definition: logger.cpp:26
void add(const LogSink &sink)
Definition: logger.cpp:45
Definition: logsink.h:20