Wildmeshing Toolkit
Loading...
Searching...
No Matches
Logger.hpp
1#pragma once
2
3// clang-format off
4#include <wmtk/utils/DisableWarnings.hpp>
5#include <spdlog/fmt/bundled/ranges.h>
6#include <spdlog/fmt/ostr.h>
7#include <spdlog/spdlog.h>
8#include <wmtk/utils/EnableWarnings.hpp>
9// clang-format on
10
11namespace wmtk {
12
13bool has_user_overloaded_logger_level();
19spdlog::logger& logger();
20
26spdlog::logger& opt_logger();
27
34void set_logger(std::shared_ptr<spdlog::logger> logger);
35
41void set_file_logger(const std::string& log_file);
42
49void set_opt_logger(std::shared_ptr<spdlog::logger> logger);
50
51[[noreturn]] void log_and_throw_error(const std::string& msg);
52
53template <typename... Args>
54[[noreturn]] void log_and_throw_error(const std::string& msg, const Args&... args)
55{
56 log_and_throw_error(fmt::format(fmt::runtime(msg), args...));
57}
58} // namespace wmtk