ProtoTank/Engine/Misc/Logger.cpp
2024-10-11 17:54:27 +02:00

58 lines
1.5 KiB
C++

#include "Logger.hpp"
#include <iomanip>
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<SysTimer>();
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
}