10#include <spdlog/cfg/argv.h>
11#include <spdlog/common.h>
12#include <spdlog/fmt/bundled/base.h>
13#include <spdlog/sinks/stdout_color_sinks.h>
14#include <spdlog/spdlog.h>
17#include <xtensor/containers/xarray.hpp>
18#include <xtensor/core/xtensor_forward.hpp>
19#include <xtensor/io/xio.hpp>
30namespace oiseau::logging {
33 OFF = SPDLOG_LEVEL_OFF,
34 FATAL = SPDLOG_LEVEL_CRITICAL,
35 ERROR = SPDLOG_LEVEL_ERROR,
36 WARNING = SPDLOG_LEVEL_WARN,
37 INFO = SPDLOG_LEVEL_INFO,
38 DEBUG = SPDLOG_LEVEL_DEBUG,
41void set_verbosity(Verbosity level);
42void init(
int argc,
char** argv);
44#define LOG_TRACE(...) \
45 spdlog::log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, spdlog::level::trace, \
47#define LOG_DEBUG(...) \
48 spdlog::log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, spdlog::level::debug, \
50#define LOG_INFO(...) \
51 spdlog::log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, spdlog::level::info, \
53#define LOG_WARN(...) \
54 spdlog::log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, spdlog::level::warn, \
56#define LOG_ERROR(...) \
57 spdlog::log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, spdlog::level::err, \
59#define LOG_FATAL(...) \
60 spdlog::log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, spdlog::level::critical, \
69class fmt::formatter<xt::xarray<T>> {
71 constexpr auto parse(format_parse_context& ctx) {
return ctx.begin(); }
72 template <
typename Context>
73 constexpr auto format(xt::xarray<T>
const& arr, Context& ctx)
const {
76 return format_to(ctx.out(),
"{}", ss.str());