2022-01-14 20:45:36 +01:00
|
|
|
#include "core/stdafx.h"
|
|
|
|
#include "core/logdef.h"
|
|
|
|
|
2023-03-27 02:01:48 +02:00
|
|
|
std::shared_ptr<spdlog::logger> g_TermLogger;
|
|
|
|
std::shared_ptr<spdlog::logger> g_ImGuiLogger;
|
|
|
|
|
2023-06-18 23:55:58 +02:00
|
|
|
std::ostringstream g_LogStream;
|
|
|
|
std::shared_ptr<spdlog::sinks::ostream_sink_st> g_LogSink;
|
|
|
|
|
2022-01-14 20:45:36 +01:00
|
|
|
//#############################################################################
|
2023-03-18 14:10:29 +01:00
|
|
|
// SPDLOG INIT
|
2022-01-14 20:45:36 +01:00
|
|
|
//#############################################################################
|
2023-07-01 01:20:47 +02:00
|
|
|
void SpdLog_Init(const bool bAnsiColor)
|
2022-01-14 20:45:36 +01:00
|
|
|
{
|
|
|
|
static bool bInitialized = false;
|
|
|
|
|
|
|
|
if (bInitialized)
|
|
|
|
{
|
|
|
|
Assert(bInitialized, "'SpdLog_Init()' has already been called.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2024-01-12 00:25:19 +01:00
|
|
|
#ifndef _TOOLS
|
2023-05-10 00:05:38 +02:00
|
|
|
g_LogSessionUUID = CreateUUID();
|
|
|
|
g_LogSessionDirectory = fmt::format("platform\\logs\\{:s}", g_LogSessionUUID);
|
2022-01-14 20:45:36 +01:00
|
|
|
/************************
|
|
|
|
* IMGUI LOGGER SETUP *
|
|
|
|
************************/
|
|
|
|
{
|
2023-06-18 23:55:58 +02:00
|
|
|
g_LogSink = std::make_shared<spdlog::sinks::ostream_sink_st>(g_LogStream);
|
2023-03-27 02:01:48 +02:00
|
|
|
g_ImGuiLogger = std::make_shared<spdlog::logger>("game_console", g_LogSink);
|
|
|
|
spdlog::register_logger(g_ImGuiLogger); // in-game console logger.
|
2023-07-01 01:20:47 +02:00
|
|
|
g_ImGuiLogger->set_pattern("%v");
|
2023-03-27 02:01:48 +02:00
|
|
|
g_ImGuiLogger->set_level(spdlog::level::trace);
|
2022-01-14 20:45:36 +01:00
|
|
|
}
|
2024-01-12 00:25:19 +01:00
|
|
|
#endif // !_TOOLS
|
2022-01-14 20:45:36 +01:00
|
|
|
/************************
|
|
|
|
* WINDOWS LOGGER SETUP *
|
|
|
|
************************/
|
|
|
|
{
|
2024-01-12 00:25:19 +01:00
|
|
|
#ifdef _TOOLS
|
2023-03-27 02:01:48 +02:00
|
|
|
g_TermLogger = spdlog::default_logger();
|
|
|
|
#else
|
|
|
|
g_TermLogger = spdlog::stdout_logger_mt("win_console");
|
2024-01-12 00:25:19 +01:00
|
|
|
#endif // _TOOLS
|
2022-01-14 20:45:36 +01:00
|
|
|
|
|
|
|
// Determine if user wants ansi-color logging in the terminal.
|
2023-07-01 01:20:47 +02:00
|
|
|
if (bAnsiColor)
|
2022-01-14 20:45:36 +01:00
|
|
|
{
|
2023-07-01 01:20:47 +02:00
|
|
|
g_TermLogger->set_pattern("%v\u001b[0m");
|
2022-01-14 20:45:36 +01:00
|
|
|
g_bSpdLog_UseAnsiClr = true;
|
|
|
|
}
|
2023-03-27 02:01:48 +02:00
|
|
|
else
|
|
|
|
{
|
2023-07-01 01:20:47 +02:00
|
|
|
g_TermLogger->set_pattern("%v");
|
2023-03-27 02:01:48 +02:00
|
|
|
}
|
|
|
|
//g_TermLogger->set_level(spdlog::level::trace);
|
2022-01-14 20:45:36 +01:00
|
|
|
}
|
|
|
|
|
2024-01-12 00:25:19 +01:00
|
|
|
#ifndef _TOOLS
|
2023-03-27 02:01:48 +02:00
|
|
|
spdlog::set_default_logger(g_TermLogger); // Set as default.
|
|
|
|
SpdLog_Create();
|
2024-01-12 00:25:19 +01:00
|
|
|
#endif // !_TOOLS
|
2023-03-27 02:01:48 +02:00
|
|
|
|
|
|
|
spdlog::set_level(spdlog::level::trace);
|
|
|
|
bInitialized = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SpdLog_Create()
|
|
|
|
{
|
2022-01-14 20:45:36 +01:00
|
|
|
/************************
|
2023-04-01 10:58:15 +02:00
|
|
|
* ROTATE LOGGER SETUP *
|
2022-01-14 20:45:36 +01:00
|
|
|
************************/
|
2023-03-27 02:01:48 +02:00
|
|
|
spdlog::rotating_logger_mt<spdlog::synchronous_factory>("squirrel_re(warning)"
|
2023-04-08 16:09:23 +02:00
|
|
|
, fmt::format("{:s}\\{:s}", g_LogSessionDirectory, "script_warning.log"), SPDLOG_MAX_SIZE, SPDLOG_NUM_FILE)->set_pattern("[%Y-%m-%d %H:%M:%S.%e] %v");
|
2023-03-27 02:01:48 +02:00
|
|
|
spdlog::rotating_logger_mt<spdlog::synchronous_factory>("squirrel_re"
|
2023-04-08 16:09:23 +02:00
|
|
|
, fmt::format("{:s}\\{:s}", g_LogSessionDirectory, "script.log"), SPDLOG_MAX_SIZE, SPDLOG_NUM_FILE)->set_pattern("[%Y-%m-%d %H:%M:%S.%e] %v");
|
2023-04-01 10:58:15 +02:00
|
|
|
spdlog::rotating_logger_mt<spdlog::synchronous_factory>("sdk"
|
2023-04-08 16:09:23 +02:00
|
|
|
, fmt::format("{:s}\\{:s}", g_LogSessionDirectory, "message.log"), SPDLOG_MAX_SIZE, SPDLOG_NUM_FILE)->set_pattern("[%Y-%m-%d %H:%M:%S.%e] %v");
|
2023-03-27 02:01:48 +02:00
|
|
|
spdlog::rotating_logger_mt<spdlog::synchronous_factory>("sdk(warning)"
|
2023-04-08 16:09:23 +02:00
|
|
|
, fmt::format("{:s}\\{:s}", g_LogSessionDirectory, "warning.log"), SPDLOG_MAX_SIZE, SPDLOG_NUM_FILE)->set_pattern("[%Y-%m-%d %H:%M:%S.%e] %v");
|
2023-03-27 02:01:48 +02:00
|
|
|
spdlog::rotating_logger_mt<spdlog::synchronous_factory>("sdk(error)"
|
2023-04-08 16:09:23 +02:00
|
|
|
, fmt::format("{:s}\\{:s}", g_LogSessionDirectory, "error.log"), SPDLOG_MAX_SIZE, SPDLOG_NUM_FILE)->set_pattern("[%Y-%m-%d %H:%M:%S.%e] %v");
|
2023-03-27 02:01:48 +02:00
|
|
|
spdlog::rotating_logger_mt<spdlog::synchronous_factory>("net_trace"
|
2023-04-08 16:09:23 +02:00
|
|
|
, fmt::format("{:s}\\{:s}", g_LogSessionDirectory, "net_trace.log"), SPDLOG_MAX_SIZE, SPDLOG_NUM_FILE)->set_pattern("[%Y-%m-%d %H:%M:%S.%e] %v");
|
2022-08-03 18:34:44 +02:00
|
|
|
#ifndef DEDICATED
|
2023-03-27 02:01:48 +02:00
|
|
|
spdlog::rotating_logger_mt<spdlog::synchronous_factory>("netconsole"
|
2023-04-08 16:09:23 +02:00
|
|
|
, fmt::format("{:s}\\{:s}", g_LogSessionDirectory, "netconsole.log"), SPDLOG_MAX_SIZE, SPDLOG_NUM_FILE)->set_pattern("[%Y-%m-%d %H:%M:%S.%e] %v");
|
2022-08-03 18:34:44 +02:00
|
|
|
#endif // !DEDICATED
|
2023-03-27 02:01:48 +02:00
|
|
|
spdlog::rotating_logger_mt<spdlog::synchronous_factory>("filesystem"
|
2023-04-08 16:09:23 +02:00
|
|
|
, fmt::format("{:s}\\{:s}", g_LogSessionDirectory, "filesystem.log"), SPDLOG_MAX_SIZE, SPDLOG_NUM_FILE)->set_pattern("[%Y-%m-%d %H:%M:%S.%e] %v");
|
2022-01-14 20:45:36 +01:00
|
|
|
}
|
2022-06-20 15:48:33 +02:00
|
|
|
|
2023-03-18 14:10:29 +01:00
|
|
|
//#############################################################################
|
|
|
|
// SPDLOG SHUTDOWN
|
|
|
|
//#############################################################################
|
|
|
|
void SpdLog_Shutdown()
|
|
|
|
{
|
|
|
|
spdlog::shutdown();
|
|
|
|
}
|