#include "framework.h" #include "Game/debug/debug.h" #include #include #include void InitTENLog() { // "true" means that we create a new log file each time we run the game auto file_sink = std::make_shared("Logs/TENLog.txt", true); std::shared_ptr logger; if constexpr (DebugBuild) { // Set the file and console log targets auto console_sink = std::make_shared(); logger = std::make_shared(std::string{ "multi_sink" }, spdlog::sinks_init_list{file_sink, console_sink }); } else { logger = std::make_shared(std::string{ "multi_sink" }, file_sink); } spdlog::initialize_logger(logger); logger->set_level(spdlog::level::info); logger->flush_on(spdlog::level::info); logger->set_pattern("[%Y-%b-%d %T] [%^%l%$] %v"); } void TENLog(std::string_view str, LogLevel level, LogConfig config) { if constexpr (!DebugBuild) { if (LogConfig::Debug == config) { return; } } auto logger = spdlog::get("multi_sink"); switch (level) { case LogLevel::Error: logger->error(str); break; case LogLevel::Warning: logger->warn(str); break; case LogLevel::Info: logger->info(str); break; } logger->flush(); } void ShutdownTENLog() { spdlog::shutdown(); }