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 | |