6#include <wmtk/utils/DisableWarnings.hpp>
7#include <spdlog/fmt/bundled/ranges.h>
8#include <spdlog/fmt/ostr.h>
9#include <spdlog/spdlog.h>
10#include <wmtk/utils/EnableWarnings.hpp>
27 std::unique_lock<std::recursive_mutex> m_lock;
28 std::shared_ptr<spdlog::logger> m_previous, m_previous_opt;
33bool has_user_overloaded_logger_level();
39spdlog::logger& logger();
46spdlog::logger& opt_logger();
54void set_logger(std::shared_ptr<spdlog::logger> logger);
61void set_file_logger(
const std::string& log_file);
69void set_opt_logger(std::shared_ptr<spdlog::logger> logger);
71[[noreturn]]
void log_and_throw_error(
const std::string& msg);
73template <
typename... Args>
74[[noreturn]]
void log_and_throw_error(
const std::string& msg,
const Args&... args)
76 log_and_throw_error(fmt::format(fmt::runtime(msg), args...));