Spaces:
Runtime error
Runtime error
namespace logger { | |
void | |
setupLogger() | |
{ | |
} | |
constexpr int THREAD_QUEUE_LENGTH = 8192; | |
void | |
setupLogger() | |
{ | |
// Ensure we setup the logger only once | |
static bool setup = false; | |
static std::mutex setupMutex{}; | |
setupMutex.lock(); | |
if (setup) { | |
setupMutex.unlock(); | |
return; | |
} | |
setup = true; | |
setupMutex.unlock(); | |
spdlog::init_thread_pool(THREAD_QUEUE_LENGTH, 1); | |
spdlog::sink_ptr console_sink = | |
std::make_shared<spdlog::sinks::stdout_color_sink_mt>(); | |
console_sink->set_pattern("[%H:%M:%S %z] [%^%=9l%$] [%=21s] %v"); | |
console_sink->set_pattern("[%H:%M:%S %z] [%^%=9l%$] [%=15s] %v"); | |
std::vector<spdlog::sink_ptr> sinks{ console_sink }; | |
// TODO: Add flag in compile flags | |
std::shared_ptr<spdlog::logger> logger = | |
std::make_shared<spdlog::async_logger>( | |
"", | |
sinks.begin(), | |
sinks.end(), | |
spdlog::thread_pool(), | |
spdlog::async_overflow_policy::block); | |
std::make_shared<spdlog::logger>( | |
"", | |
sinks.begin(), | |
sinks.end()); | |
logger->set_level(getLogLevel()); | |
spdlog::set_default_logger(logger); | |
} | |
spdlog::level::level_enum | |
getLogLevel() | |
{ | |
return spdlog::level::trace; | |
return spdlog::level::debug; | |
return spdlog::level::info; | |
return spdlog::level::warn; | |
return spdlog::level::error; | |
return spdlog::level::critical; | |
return spdlog::level::off; | |
} | |
void | |
setLogLevel(const spdlog::level::level_enum level) | |
{ | |
spdlog::default_logger()->set_level(level); | |
} | |
} // namespace logger | |