12#ifndef INCLUDED_GR_LOGGER_H
13#define INCLUDED_GR_LOGGER_H
20#ifdef DISABLE_LOGGER_H
36#include <spdlog/common.h>
38#include <spdlog/fmt/fmt.h>
39#include <spdlog/fmt/ostr.h>
40#include <spdlog/version.h>
43#include <spdlog/spdlog.h>
45#include <spdlog/sinks/dist_sink.h>
86 static constexpr const char* default_pattern =
"%n :%l: %v";
90 std::shared_ptr<spdlog::sinks::dist_sink_mt> _default_backend, _debug_backend;
123 using underlying_logger_ptr = std::shared_ptr<spdlog::logger>;
125#if SPDLOG_VERSION >= 11000
128 template <
typename... Args>
129 using format_string_t = spdlog::format_string_t<Args...>;
130#elif SPDLOG_VERSION >= 10910
133 template <
typename... Args>
134 using format_string_t = fmt::format_string<Args...>;
137 template <
typename... Args>
138 using format_string_t =
const spdlog::string_view_t&;
168 const std::string&
name()
const;
172 template <
typename... Args>
173 inline void trace(format_string_t<Args...> msg, Args&&... args)
175 d_logger->trace(msg, std::forward<Args>(args)...);
179 template <
typename... Args>
180 inline void debug(format_string_t<Args...> msg, Args&&... args)
182 d_logger->debug(msg, std::forward<Args>(args)...);
186 template <
typename... Args>
187 inline void info(format_string_t<Args...> msg, Args&&... args)
189 d_logger->info(msg, std::forward<Args>(args)...);
193 template <
typename... Args>
194 inline void notice(format_string_t<Args...> msg, Args&&... args)
196 d_logger->info(msg, std::forward<Args>(args)...);
200 template <
typename... Args>
201 inline void warn(format_string_t<Args...> msg, Args&&... args)
203 d_logger->warn(msg, std::forward<Args>(args)...);
207 template <
typename... Args>
208 inline void error(format_string_t<Args...> msg, Args&&... args)
210 d_logger->error(msg, std::forward<Args>(args)...);
214 template <
typename... Args>
215 inline void crit(format_string_t<Args...> msg, Args&&... args)
217 d_logger->critical(msg, std::forward<Args>(args)...);
221 template <
typename... Args>
222 inline void alert(format_string_t<Args...> msg, Args&&... args)
224 d_logger->critical(msg, std::forward<Args>(args)...);
228 template <
typename... Args>
229 inline void fatal(format_string_t<Args...> msg, Args&&... args)
231 d_logger->critical(msg, std::forward<Args>(args)...);
235 template <
typename... Args>
236 inline void emerg(format_string_t<Args...> msg, Args&&... args)
238 d_logger->critical(msg, std::forward<Args>(args)...);
241 template <
typename... Args>
243 log(spdlog::level::level_enum level, format_string_t<Args...> msg, Args&&... args)
245 d_logger->log(level, msg, std::forward<Args>(args)...);
265#define GR_LOG_TRACE(log, msg) \
267 log->d_logger->trace(msg); \
270#define GR_LOG_DEBUG(log, msg) \
272 log->d_logger->debug(msg); \
275#define GR_LOG_INFO(log, msg) \
277 log->d_logger->info(msg); \
280#define GR_LOG_NOTICE(log, msg) \
282 log->d_logger->info(msg); \
286#define GR_LOG_WARN(log, msg) \
288 log->d_logger->warn(msg); \
291#define GR_LOG_ERROR(log, msg) \
293 log->d_logger->error(msg); \
296#define GR_LOG_CRIT(log, msg) \
298 log->d_logger->critical(msg); \
301#define GR_LOG_ALERT(log, msg) \
303 log->d_logger->critical(msg); \
306#define GR_LOG_FATAL(log, msg) \
308 log->d_logger->critical(msg); \
311#define GR_LOG_EMERG(log, msg) \
313 log->d_logger->critical(msg); \
GR_LOG macros.
Definition logger.h:119
void alert(format_string_t< Args... > msg, Args &&... args)
inline function, wrapper for CRITICAL message, DEPRECATED
Definition logger.h:222
void set_name(const std::string &name)
void get_level(std::string &level) const
inline function, wrapper to get the logger level
void error(format_string_t< Args... > msg, Args &&... args)
inline function, wrapper for ERROR message
Definition logger.h:208
void trace(format_string_t< Args... > msg, Args &&... args)
inline function, wrapper for TRACE message
Definition logger.h:173
void log(spdlog::level::level_enum level, format_string_t< Args... > msg, Args &&... args)
inline function, wrapper for logging with ad-hoc adjustable level
Definition logger.h:243
~logger()=default
Destructor.
underlying_logger_ptr d_logger
Definition logger.h:156
void crit(format_string_t< Args... > msg, Args &&... args)
inline function, wrapper for CRITICAL message
Definition logger.h:215
void info(format_string_t< Args... > msg, Args &&... args)
inline function, wrapper for INFO message
Definition logger.h:187
void debug(format_string_t< Args... > msg, Args &&... args)
inline function, wrapper for DEBUG message
Definition logger.h:180
logger(const std::string &logger_name)
constructor Provide name of logger to associate with this class
const std::string & name() const
void set_level(const log_level level)
void notice(format_string_t< Args... > msg, Args &&... args)
inline function, wrapper for INFO message, DEPRECATED
Definition logger.h:194
void set_level(const std::string &level)
inline function, wrapper to set the logger level
void fatal(format_string_t< Args... > msg, Args &&... args)
inline function, wrapper for CRITICAL message, DEPRECATED
Definition logger.h:229
void emerg(format_string_t< Args... > msg, Args &&... args)
inline function, wrapper for CRITICAL message, DEPRECATED
Definition logger.h:236
log_level get_level() const
const std::string get_string_level() const
void warn(format_string_t< Args... > msg, Args &&... args)
inline function, wrapper for WARN message
Definition logger.h:201
void set_default_level(log_level level)
set the default logging level
void add_default_sink(const spdlog::sink_ptr &sink)
adds a logging sink
spdlog::sink_ptr default_backend() const
void operator=(logging const &)=delete
void add_default_console_sink()
add a default-constructed console sink to the default logger
logging(logging const &)=delete
void add_debug_console_sink()
add a default-constructed console sink to the debugging logger
static logging & singleton()
void set_debug_level(log_level level)
set the debug logging level
log_level debug_level() const
get the debug logging level
Definition logger.h:68
void add_debug_sink(const spdlog::sink_ptr &sink)
adds a debugging sink
log_level default_level() const
get the default logging level
Definition logger.h:65
#define GR_RUNTIME_API
Definition gnuradio-runtime/include/gnuradio/api.h:18
GNU Radio logging wrapper.
Definition basic_block.h:29
std::shared_ptr< logger > logger_ptr
Definition logger.h:248
GR_RUNTIME_API bool configure_default_loggers(gr::logger_ptr &l, gr::logger_ptr &d, const std::string &name)
spdlog::level::level_enum log_level
Definition logger.h:48