2026-01-28 06:16:04 +00:00

36 lines
1.2 KiB
C++

#include "InferenceLogger.h"
#include "LoggerConstants.h"
#include "spdlog/sinks/stdout_color_sinks.h"
using std::shared_ptr;
using std::mutex;
using std::unique_lock;
using std::make_shared;
using std::vector;
using dynasty::log::InferenceLogger;
shared_ptr<spdlog::logger> InferenceLogger::logger_instance_ = nullptr;
mutex InferenceLogger::mutex_;
shared_ptr<spdlog::logger> InferenceLogger::GetLogger() {
if (!logger_instance_) {
unique_lock<mutex> lock(mutex_);
if (!logger_instance_) {
vector<spdlog::sink_ptr> sinks;
sinks.push_back(
make_shared<spdlog::sinks::stdout_color_sink_mt>());
auto temp = make_shared<spdlog::logger>("InferenceLogger",
begin(sinks), end(sinks));
temp->set_pattern(logger_constants::LOGGER_PATTERN);
temp->set_level((spdlog::level::level_enum)(SPDLOG_ACTIVE_LEVEL));
logger_instance_ = temp;
// SPDLOG_LOGGER_DEBUG(logger_instance_, "Initialized the logger!");
}
}
return logger_instance_;
}
void InferenceLogger::SetLogLevel(spdlog::level::level_enum llevel) {
auto logger = GetLogger();
logger->set_level(llevel);
}