2025-07-05 13:28:41 +03:30
|
|
|
#include <engine/debug/logger.hpp>
|
2021-06-19 15:12:42 +04:30
|
|
|
#include <spdlog/sinks/basic_file_sink.h>
|
2022-03-07 21:57:00 +03:30
|
|
|
#include <spdlog/sinks/stdout_color_sinks.h>
|
2021-05-21 10:55:39 +04:30
|
|
|
|
|
|
|
namespace Light {
|
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
logger *logger::s_Context = nullptr;
|
2022-03-07 21:57:00 +03:30
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
Scope<logger> logger::create()
|
2022-03-07 21:57:00 +03:30
|
|
|
{
|
2025-07-05 15:36:53 +03:30
|
|
|
return make_scope<logger>(new logger());
|
2022-03-07 21:57:00 +03:30
|
|
|
}
|
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
logger::logger()
|
2025-07-05 14:23:01 +03:30
|
|
|
: m_engine_logger(nullptr)
|
|
|
|
, m_file_logger(nullptr)
|
|
|
|
, m_log_file_path(LT_LOG_FILE_LOCATION)
|
2022-03-07 21:57:00 +03:30
|
|
|
{
|
2025-07-05 15:36:53 +03:30
|
|
|
lt_assert(!s_Context, "An instance of 'logger' already exists, do not construct this class!");
|
2022-03-07 21:57:00 +03:30
|
|
|
s_Context = this;
|
|
|
|
|
|
|
|
// set spdlog pattern
|
|
|
|
// create loggers
|
|
|
|
spdlog::set_pattern("%^[%H:%M:%S]%g@%! ==> %v%$");
|
2021-06-19 15:12:42 +04:30
|
|
|
#ifndef LIGHT_DIST
|
2022-03-07 21:57:00 +03:30
|
|
|
spdlog::set_pattern("%^[%H:%M:%S]%! ==> %v%$");
|
2025-07-05 14:23:01 +03:30
|
|
|
m_engine_logger = spdlog::stdout_color_mt("Engine");
|
2021-06-19 15:12:42 +04:30
|
|
|
#endif
|
2022-03-07 21:57:00 +03:30
|
|
|
|
2025-07-05 14:23:01 +03:30
|
|
|
m_file_logger = spdlog::basic_logger_mt("File", m_log_file_path);
|
|
|
|
m_file_logger->set_pattern("%^[%M:%S:%e] <%l>: %v%$");
|
2022-03-07 21:57:00 +03:30
|
|
|
|
|
|
|
// set level
|
|
|
|
#if defined(LIGHT_DEBUG)
|
2025-07-05 14:23:01 +03:30
|
|
|
m_engine_logger->set_level(spdlog::level::trace);
|
|
|
|
m_client_logger->set_level(spdlog::level::trace);
|
2022-03-07 21:57:00 +03:30
|
|
|
#elif defined(LIGHT_RELEASE)
|
|
|
|
s_EngineLogger->set_level(spdlog::level::info);
|
|
|
|
s_ClientLogger->set_level(spdlog::level::info);
|
2021-06-15 22:17:28 +04:30
|
|
|
#endif
|
2022-03-07 21:57:00 +03:30
|
|
|
}
|
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
void logger::log_debug_data()
|
2022-03-07 21:57:00 +03:30
|
|
|
{
|
|
|
|
// #todo: improve
|
2025-07-05 15:36:53 +03:30
|
|
|
lt_log(info, "________________________________________");
|
|
|
|
lt_log(info, "logger::");
|
|
|
|
lt_log(info, " EngineLevel : {}", Stringifier::spdlogLevel(m_engine_logger->level()));
|
|
|
|
lt_log(info, " FileLevel : {}", Stringifier::spdlogLevel(m_file_logger->level()));
|
|
|
|
lt_log(info, " DefaultLevel: {}", Stringifier::spdlogLevel(spdlog::get_level()));
|
|
|
|
lt_log(info, "________________________________________");
|
2022-03-07 21:57:00 +03:30
|
|
|
}
|
|
|
|
|
|
|
|
} // namespace Light
|