Files
checkpoint/src/debug/log.hpp
2025-04-13 15:28:37 +01:00

41 lines
965 B
C++

#pragma once
#include <string>
#include <fmt/format.h>
#include <iostream>
#include "../config/Config.hpp"
enum LogLevel {
NONE = -1,
LOG = 0,
WARN,
ERR,
CRIT,
INFO,
TRACE
};
namespace Debug {
template <typename... Args>
void log(LogLevel level, fmt::format_string<Args...> fmt, Args&&... args) {
std::string logMsg = "";
if (g_pConfig && !g_pConfig->m_config.trace_logging && level == TRACE)
return;
switch (level) {
case LOG: logMsg += "[LOG] "; break;
case WARN: logMsg += "[WARN] "; break;
case ERR: logMsg += "[ERR] "; break;
case CRIT: logMsg += "[CRITICAL] "; break;
case INFO: logMsg += "[INFO] "; break;
case TRACE: logMsg += "[TRACE] "; break;
default: break;
}
logMsg += fmt::vformat(fmt.get(), fmt::make_format_args(args...));
std::cout << logMsg << "\n";
}
};