Enhanced logger
This commit is contained in:
parent
8b41f0f241
commit
1496d03ead
@ -0,0 +1,58 @@
|
|||||||
|
#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
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "../Utils/Timers.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
//TODO: Should be upgraded using FMT lib
|
||||||
|
class Logger final {
|
||||||
|
public:
|
||||||
|
static Logger& getInstance() {
|
||||||
|
if (smInstance == nullptr)
|
||||||
|
smInstance = new Logger();
|
||||||
|
|
||||||
|
return *smInstance;
|
||||||
|
}
|
||||||
|
~Logger() = default;
|
||||||
|
|
||||||
|
Logger(Logger&&) = default;
|
||||||
|
Logger& operator= (Logger&&) = default;
|
||||||
|
Logger(Logger const&) = delete;
|
||||||
|
Logger& operator= (Logger const&) = delete;
|
||||||
|
|
||||||
|
void PrintInfo(std::string inPrt);
|
||||||
|
void PrintWarning(std::string inPrt);
|
||||||
|
void PrintCritical(std::string inPrt);
|
||||||
|
void PrintDebug(std::string inPrt);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Logger() noexcept(false);
|
||||||
|
static Logger* smInstance;
|
||||||
|
std::unique_ptr<SysTimer> mLogTimer = nullptr;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOGGER_MSG_FT(x) std::string(__FUNCTION__) + std::string("@") + std::to_string(__LINE__) + std::string(": ") + std::string(x)
|
@ -1,15 +1,14 @@
|
|||||||
#include <iomanip>
|
#include "Engine/Misc/Logger.hpp"
|
||||||
|
|
||||||
#include "Game.hpp"
|
#include "Game.hpp"
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
SysTimer mSysTimer;
|
SysTimer mSysTimer;
|
||||||
std::cout << std::fixed << std::setprecision(6);
|
Logger& log = Logger::getInstance();
|
||||||
|
|
||||||
GAME_STATUS status = GAME_INIT;
|
GAME_STATUS status = GAME_INIT;
|
||||||
|
|
||||||
std::cout << "[" << mSysTimer.GetElapsedTimeS() << "] Init game instance" << std::endl;
|
log.PrintInfo(LOGGER_MSG_FT("Init game instance"));
|
||||||
Game& arcadeGame = Game::getInstance(true);
|
Game& arcadeGame = Game::getInstance(true);
|
||||||
|
|
||||||
for ( ;; ) {
|
for ( ;; ) {
|
||||||
@ -19,6 +18,6 @@ int main(int argc, char** argv) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "[" << mSysTimer.GetElapsedTimeS() << "] Bye bye!" << std::endl;
|
log.PrintInfo(LOGGER_MSG_FT("Bye bye!"));
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user