Castle Battle  1.0
Logger.h
Go to the documentation of this file.
1 #ifndef LOGGER_H
2 #define LOGGER_H
3 #include <irrlicht.h>
4 #include <bullethelper.h>
5 using namespace irr;
8 #ifndef DEBUG_OUTPUT_MASK
9  #define DEBUG_OUTPUT_MASK 0
10 #endif
11 
12 #define LOGGER(tag, level, _Message) \
13  Logger::getLogger()->print( \
14  static_cast<LOG_TYPE>(tag), \
15  level, \
16  static_cast<core::stringc>(_Message) \
17  );
18 
19 
21  // #define DEBUG_OUTPUT_MASK 1
22 
26 #define log(tag, level, _Message) if(level & DEBUG_OUTPUT_MASK) LOGGER(tag,level,_Message) else;
27 
28 #define log1(_Message) log(INFO,1, _Message)
29 
31 #define log1p(_Message, parameter) log1(static_cast<core::stringc>(_Message) + core::stringc(parameter))
32 
35 #define log2p(_Message, parameter) log2(static_cast<core::stringc>(_Message) + core::stringc(parameter))
36 
39 #define log2(_Message) log(INFO,2, _Message)
40 
42 #define logVector(level, _Message, vector) \
43  log(INFO, level, \
44  static_cast<core::stringc>(_Message)+ \
45  static_cast<core::stringc>(vectorToString(static_cast<core::vector3df>(vector))) \
46  );
47 
49 enum LOG_TYPE{
50  INFO,
53 };
60 class Logger{
61 public:
62  // static int level;
64  static Logger* getLogger();
71  void print(LOG_TYPE type, int level, core::stringc str);
72 private:
74  static Logger* logger;
76  void initLogger();
78  Logger();
79 };
80 #endif
This singleton class handles logs and debugging.
Definition: Logger.h:60
Definition: Logger.h:50
static Logger * logger
Self instance.
Definition: Logger.h:74
LOG_TYPE
For now there are only INFO outputs.
Definition: Logger.h:49
Definition: Logger.h:52
Definition: Logger.h:51