#include "Logger.hpp" #include enum LOG_TYPE{ LOG_TYPE_INFO = 0, LOG_TYPE_WARN, LOG_TYPE_CRIT, LOG_TYPE_DBG }; Logger* Logger::smInstance = nullptr; /* ------------------------------------------------------------------------------------------------------------------------------------------------- */ static void LogConsolePrint(const LOG_TYPE logType, const std::string& message, const double time) { std::cout << std::fixed << std::setprecision(6) << '[' << time; switch (logType) { case LOG_TYPE_DBG: std::cout << "][DEBUG] "; break; case LOG_TYPE_CRIT: std::cout << "][CRIT] "; break; case LOG_TYPE_WARN: std::cout << "][WARN] "; break; case LOG_TYPE_INFO: default: std::cout << "][INFO] "; break; } std::cout << message << std::endl; } /* ------------------------------------------------------------------------------------------------------------------------------------------------- */ Logger::Logger() { mLogTimer = std::make_unique(); PrintInfo("Log module ready"); } void Logger::PrintInfo(std::string _in) { LogConsolePrint(LOG_TYPE_INFO, _in, mLogTimer->GetElapsedTimeS()); } void Logger::PrintWarning(std::string _in) { LogConsolePrint(LOG_TYPE_WARN, _in, mLogTimer->GetElapsedTimeS()); } void Logger::PrintCritical(std::string _in) { LogConsolePrint(LOG_TYPE_CRIT, _in, mLogTimer->GetElapsedTimeS()); } void Logger::PrintDebug(std::string _in) { #ifdef _DEBUG LogConsolePrint(LOG_TYPE_DBG, _in, mLogTimer->GetElapsedTimeS()); #endif }