#pragma once #include namespace clice::logger { extern void* instance; void init(std::string_view path); inline void info(std::string_view message) { spdlog::info(message); spdlog::default_logger()->flush(); } template inline void info(spdlog::format_string_t message, Args&&... args) { spdlog::info(message, std::forward(args)...); spdlog::default_logger()->flush(); } inline void error [[noreturn]] (std::string_view message) { spdlog::error(message); spdlog::default_logger()->flush(); std::terminate(); } template inline void error [[noreturn]] (spdlog::format_string_t message, Args&&... args) { spdlog::error(message, std::forward(args)...); spdlog::default_logger()->flush(); std::terminate(); } } // namespace clice::logger