diff options
-rw-r--r-- | include/log.h | 64 | ||||
-rw-r--r-- | log.cc | 59 |
2 files changed, 62 insertions, 61 deletions
diff --git a/include/log.h b/include/log.h index 7c25918..38fc122 100644 --- a/include/log.h +++ b/include/log.h @@ -1,10 +1,11 @@ #ifndef LOG_H #define LOG_H + #include <string> #include <cstddef> namespace nitrokey { -namespace log { + namespace log { //for MSVC #ifdef ERROR @@ -12,45 +13,44 @@ namespace log { #endif -enum class Loglevel : int { DEBUG_L2, DEBUG, INFO, WARNING, ERROR }; - -class LogHandler { - public: - virtual void print(const std::string &, Loglevel lvl) = 0; + enum class Loglevel : int { + DEBUG_L2, DEBUG, INFO, WARNING, ERROR + }; - protected: - std::string loglevel_to_str(Loglevel); -}; + class LogHandler { + public: + virtual void print(const std::string &, Loglevel lvl) = 0; + protected: + std::string loglevel_to_str(Loglevel); + }; -class StdlogHandler : public LogHandler { - public: - virtual void print(const std::string &, Loglevel lvl); -}; + class StdlogHandler : public LogHandler { + public: + virtual void print(const std::string &, Loglevel lvl); + }; -extern StdlogHandler stdlog_handler; + extern StdlogHandler stdlog_handler; -class Log { - public: - Log() : mp_loghandler(&stdlog_handler), m_loglevel(Loglevel::WARNING) {} - - static Log &instance() { - if (mp_instance == nullptr) mp_instance = new Log; - return *mp_instance; - } + class Log { + public: + Log() : mp_loghandler(&stdlog_handler), m_loglevel(Loglevel::WARNING) {} - void operator()(const std::string &, Loglevel); + static Log &instance() { + if (mp_instance == nullptr) mp_instance = new Log; + return *mp_instance; + } - void set_loglevel(Loglevel lvl) { m_loglevel = lvl; } + void operator()(const std::string &, Loglevel); + void set_loglevel(Loglevel lvl) { m_loglevel = lvl; } + void set_handler(LogHandler *handler) { mp_loghandler = handler; } - void set_handler(LogHandler *handler) { mp_loghandler = handler; } + private: + LogHandler *mp_loghandler; + Loglevel m_loglevel; - private: - Loglevel m_loglevel; - LogHandler *mp_loghandler; - - static Log *mp_instance; -}; -} + static Log *mp_instance; + }; + } } @@ -5,38 +5,39 @@ #include "log.h" namespace nitrokey { -namespace log { + namespace log { -Log *Log::mp_instance = nullptr; -StdlogHandler stdlog_handler; + Log *Log::mp_instance = nullptr; + StdlogHandler stdlog_handler; -std::string LogHandler::loglevel_to_str(Loglevel lvl) { - switch (lvl) { - case Loglevel::DEBUG_L2: - return std::string("DEBUG_L2"); - case Loglevel::DEBUG: - return std::string("DEBUG"); - case Loglevel::INFO: - return std::string("INFO"); - case Loglevel::WARNING: - return std::string("WARNING"); - case Loglevel::ERROR: - return std::string("ERROR"); - } - return std::string(""); -} + std::string LogHandler::loglevel_to_str(Loglevel lvl) { + switch (lvl) { + case Loglevel::DEBUG_L2: + return std::string("DEBUG_L2"); + case Loglevel::DEBUG: + return std::string("DEBUG"); + case Loglevel::INFO: + return std::string("INFO"); + case Loglevel::WARNING: + return std::string("WARNING"); + case Loglevel::ERROR: + return std::string("ERROR"); + } + return std::string(""); + } -void Log::operator()(const std::string &logstr, Loglevel lvl) { - if (mp_loghandler != nullptr) - if ((int)(lvl) >= (int)(m_loglevel)) mp_loghandler->print(logstr, lvl); -} + void Log::operator()(const std::string &logstr, Loglevel lvl) { + if (mp_loghandler != nullptr) + if ((int) lvl >= (int) m_loglevel) mp_loghandler->print(logstr, lvl); + } -void StdlogHandler::print(const std::string &str, Loglevel lvl) { - std::time_t t = std::time(nullptr); - std::tm tm = *std::localtime(&t); + void StdlogHandler::print(const std::string &str, Loglevel lvl) { + std::time_t t = std::time(nullptr); + std::tm tm = *std::localtime(&t); - std::clog << "[" << loglevel_to_str(lvl) << "] [" - << std::put_time(&tm, "%c %Z") << "]\t" << str << std::endl; -} -} + std::clog << "[" << loglevel_to_str(lvl) << "] [" + << std::put_time(&tm, "%c %z") + << "]\t" << str << std::endl; + } + } } |