Files
checkpoint/src/debug/log.hpp

41 lines
965 B
C++
Raw Normal View History

2025-04-12 20:06:56 +01:00
#pragma once
#include <string>
#include <fmt/format.h>
#include <iostream>
2025-04-13 15:28:37 +01:00
#include "../config/Config.hpp"
2025-04-12 20:06:56 +01:00
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 = "";
2025-04-13 15:28:37 +01:00
if (g_pConfig && !g_pConfig->m_config.trace_logging && level == TRACE)
return;
2025-04-12 20:06:56 +01:00
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";
}
};