1#ifndef LOGGING_H_INCLUDED
2#define LOGGING_H_INCLUDED
37#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_TRACE
41#include <spdlog/spdlog.h>
42#include <spdlog/sinks/stdout_color_sinks.h>
46template<
typename... Args>
47std::string concatenate_args(Args&&... args) {
48 std::ostringstream oss;
49 (oss << ... << args());
57#define log_trace(...) SPDLOG_TRACE(concatenate_args([&](){ std::ostringstream oss; oss << __VA_ARGS__; return oss.str(); }))
60#define log_trace(...) ((void) 0);
65#define log_debug(...) SPDLOG_DEBUG(concatenate_args([&](){ std::ostringstream oss; oss << __VA_ARGS__; return oss.str(); }))
68#define log_debug(...) ((void) 0);
71#define log_info(...) SPDLOG_INFO(concatenate_args([&](){ std::ostringstream oss; oss << __VA_ARGS__; return oss.str(); }))
73#define log_warn(...) SPDLOG_WARN(concatenate_args([&](){ std::ostringstream oss; oss << __VA_ARGS__; return oss.str(); }))
77#define log_error(...) SPDLOG_ERROR(concatenate_args([&](){ std::ostringstream oss; oss << __VA_ARGS__; return oss.str(); }))
80#define log_fatal(...) do { SPDLOG_ERROR(concatenate_args([&](){ std::ostringstream oss; oss << __VA_ARGS__; return oss.str(); })); \
81throw Gaps::FatalException(); \
85 typedef spdlog::level::level_enum LOGLEVEL;
87 std::string severity_to_str (
const LOGLEVEL& severity);
98 virtual const char* what()
const throw()
100 return "Abort program due to a log_fatal(..) statement in the gaps code!";
Exception for log_fatal(..) macro.
Definition logging.hpp:97
**
Definition caraspace.hpp:8
void set_loglevel(LOGLEVEL severity)