10Duke Scale C++ Client
Loading...
Searching...
No Matches
Logger.h
1#ifndef TENDUKE_LOG_LOGGER_H
2#define TENDUKE_LOG_LOGGER_H
3
4#include <string>
5#include <utility>
6
7namespace tenduke { namespace log {
8
12class Logger {
13
14public:
19 enum LOG_LEVEL {
20 LOG_OFF,
21 LOG_ERROR,
22 LOG_WARNING,
23 LOG_INFO,
24 LOG_DEBUG,
25 LOG_TRACE
26 };
27
28public:
34 explicit Logger(std::string name = "", enum LOG_LEVEL level = LOG_INFO) : logLevel(level), name(std::move(name)) {}
35 virtual ~Logger() = default;
36
41 virtual void debug(const char *message) {this->log(LOG_DEBUG, message);}
42
47 virtual void debug(const std::string &message) {this->debug(message.c_str());}
48
53 virtual void error(const char *message) {this->log(LOG_ERROR, message);}
54
59 virtual void error(const std::string &message) {this->error(message.c_str());}
60
65 virtual void info(const char *message) {this->log(LOG_INFO, message);}
66
71 virtual void info(const std::string &message) {this->info(message.c_str());}
72
77 virtual void trace(const char *message) {this->log(LOG_TRACE, message);}
78
83 virtual void trace(const std::string &message) {this->trace(message.c_str());};
84
89 virtual void warning(const char *message) {this->log(LOG_WARNING, message);}
90
95 virtual void warning(const std::string &message) {this->warning(message.c_str());}
96
102 virtual void log(enum LOG_LEVEL atLevel, const char * message)
103 {
104 if (logLevel >= atLevel) {
105 write(atLevel, message);
106 }
107 }
108
113 virtual void setLogLevel(enum LOG_LEVEL level)
114 {
115 logLevel = level;
116 }
117
118protected:
124 virtual void write(enum LOG_LEVEL level, const char * message) = 0;
125
127 const std::string name;
128private:
129 enum LOG_LEVEL logLevel;
130};
131
132
133}}
134#endif //TENDUKE_LOG_LOGGER_H
Simple logger interface.
Definition Logger.h:12
virtual void warning(const char *message)
Log message at WARNING-level.
Definition Logger.h:89
const std::string name
Name of this logger.
Definition Logger.h:127
virtual void trace(const std::string &message)
Log message at TRACE-level.
Definition Logger.h:83
virtual void info(const char *message)
Log message at INFO-level.
Definition Logger.h:65
virtual void write(enum LOG_LEVEL level, const char *message)=0
Writes the log message.
virtual void debug(const std::string &message)
Log message at DEBUG-level.
Definition Logger.h:47
virtual void error(const char *message)
Log message at ERROR-level.
Definition Logger.h:53
LOG_LEVEL
Log levels.
Definition Logger.h:19
Logger(std::string name="", enum LOG_LEVEL level=LOG_INFO)
Constructs new Logger instance.
Definition Logger.h:34
virtual void info(const std::string &message)
Log message at INFO-level.
Definition Logger.h:71
virtual void setLogLevel(enum LOG_LEVEL level)
Sets the log level of this logger.
Definition Logger.h:113
virtual void debug(const char *message)
Log message at DEBUG-level.
Definition Logger.h:41
virtual void warning(const std::string &message)
Log message at WARNING-level.
Definition Logger.h:95
virtual void trace(const char *message)
Log message at TRACE-level.
Definition Logger.h:77
virtual void error(const std::string &message)
Log message at ERROR-level.
Definition Logger.h:59
virtual void log(enum LOG_LEVEL atLevel, const char *message)
Log message at given log-level.
Definition Logger.h:102
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7