Skip to content

src/core/logger.h

Namespaces

Name
dakku
dakku namespace

Classes

Name
class dakku::Logger
logger class

Defines

Name
DAKKU_ERR(...)
log error message
DAKKU_INFO(...)
log info message
DAKKU_WARN(...)
log warning message
DAKKU_DEBUG(...)
log debug message
DAKKU_CHECK(...)
check whether the condition val is true, if not log error messages

Macros Documentation

define DAKKU_ERR

#define DAKKU_ERR(
    ...
)
  SPDLOG_LOGGER_CALL(Logger::get().handle(), spdlog::level::err, __VA_ARGS__)

log error message

define DAKKU_INFO

#define DAKKU_INFO(
    ...
)
  SPDLOG_LOGGER_CALL(Logger::get().handle(), spdlog::level::info, __VA_ARGS__)

log info message

define DAKKU_WARN

#define DAKKU_WARN(
    ...
)
  SPDLOG_LOGGER_CALL(Logger::get().handle(), spdlog::level::warn, __VA_ARGS__)

log warning message

define DAKKU_DEBUG

#define DAKKU_DEBUG(
    ...
)
static_cast<void>(0)

log debug message

define DAKKU_CHECK

#define DAKKU_CHECK(
    ...
)
static_cast<void>(0)

check whether the condition val is true, if not log error messages

Source code

#ifndef DAKKU_CORE_LOGGER_H_
#define DAKKU_CORE_LOGGER_H_
#include <core/fwd.h>

#include <memory>

#include <spdlog/spdlog.h>
#include <spdlog/fmt/ostr.h>

namespace dakku {
class DAKKU_EXPORT_CORE Logger {
 public:
  static const Logger &get();

  [[nodiscard]] spdlog::logger *handle() const { return _logger.get(); }

 private:
  explicit Logger(std::shared_ptr<spdlog::logger> _logger);

  std::shared_ptr<spdlog::logger> _logger;
};

#define DAKKU_ERR(...) \
  SPDLOG_LOGGER_CALL(Logger::get().handle(), spdlog::level::err, __VA_ARGS__)
#define DAKKU_INFO(...) \
  SPDLOG_LOGGER_CALL(Logger::get().handle(), spdlog::level::info, __VA_ARGS__)
#define DAKKU_WARN(...) \
  SPDLOG_LOGGER_CALL(Logger::get().handle(), spdlog::level::warn, __VA_ARGS__)
#ifdef DAKKU_BUILD_DEBUG
#define DAKKU_DEBUG(...) \
  SPDLOG_LOGGER_CALL(Logger::get().handle(), spdlog::level::debug, __VA_ARGS__)
#else
#define DAKKU_DEBUG(...) static_cast<void>(0)
#endif

#ifdef DAKKU_BUILD_CHECK
#define DAKKU_CHECK(val, ...) \
  do {                        \
    if (!(val)) {             \
      DAKKU_ERR(__VA_ARGS__); \
      std::exit(-1);          \
    }                         \
  } while (0)
#else
#define DAKKU_CHECK(...) static_cast<void>(0)
#endif
}  // namespace dakku
#endif

Updated on 2022-04-30 at 15:46:11 +0000