The small3d framework
Logger.hpp
Go to the documentation of this file.
1 
10 #pragma once
11 
15 #define LOGERROR(MESSAGE) logger->append(loggererror, MESSAGE)
16 
20 #define LOGINFO(MESSAGE) logger->append(loggerinfo, MESSAGE)
21 
25 #if defined(DEBUG) || defined(_DEBUG) || !defined (NDEBUG)
26 #define LOGDEBUG(MESSAGE) logger->append(loggerdebug, MESSAGE)
27 #else
28 #define LOGDEBUG(MESSAGE)
29 #endif
30 
31 #include <ostream>
32 #include <memory>
33 
34 namespace small3d {
35 
39  std::string intToStr(const int number);
40 
44  std::string floatToStr(const float number);
45 
50  enum LogLevel {
51  loggerinfo, loggerdebug, loggererror
52  };
53 
59  class Logger {
60  private:
61  std::ostream *logStream;
62  public:
63 
70  Logger(std::ostream &stream);
71 
76  ~Logger();
77 
85  void append(const LogLevel level, const std::string message) const;
86  };
87 
91  void initLogger();
92 
93 
100  void initLogger(std::ostream &stream);
101 
105  void deleteLogger();
106 }
107 
111 extern std::shared_ptr<small3d::Logger> logger;
The standard logging class for small3d.
Definition: Logger.hpp:59
Logger(std::ostream &stream)
Constructor with stream for output.
Definition: Logger.cpp:30
std::shared_ptr< small3d::Logger > logger
The logger object used by the logging macros.
Definition: Logger.cpp:14
void initLogger()
Initialise the logger.
Definition: Logger.cpp:76
LogLevel
Possible logging levels.
Definition: Logger.hpp:50
void append(const LogLevel level, const std::string message) const
Appends a message to the logger.
Definition: Logger.cpp:40
~Logger()
Destructor.
Definition: Logger.cpp:34
void deleteLogger()
Destroy the logger.
Definition: Logger.cpp:84