logger.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef __LOGGER_H__
  2. #define __LOGGER_H__
  3. #include <spdlog/spdlog.h>
  4. // #define LOG_TRACE(...) spdlog::default_logger()->trace(__VA_ARGS__)
  5. // #define LOG_DEBUG(...) spdlog::default_logger()->debug(__VA_ARGS__)
  6. // #define LOG_INFO(...) spdlog::default_logger()->info(__VA_ARGS__)
  7. // #define LOG_WARN(...) spdlog::default_logger()->warn(__VA_ARGS__)
  8. // #define LOG_ERROR(...) spdlog::default_logger()->error(__VA_ARGS__)
  9. // #define LOG_CRITICAL(...) spdlog::default_logger()->critical(__VA_ARGS__)
  10. #define LOG_TRACE(...) SPDLOG_LOGGER_CALL(spdlog::default_logger().get(), spdlog::level::trace, __VA_ARGS__)
  11. #define LOG_DEBUG(...) SPDLOG_LOGGER_CALL(spdlog::default_logger().get(), spdlog::level::debug, __VA_ARGS__)
  12. #define LOG_INFO(...) SPDLOG_LOGGER_CALL(spdlog::default_logger().get(), spdlog::level::info, __VA_ARGS__)
  13. #define LOG_ERROR(...) SPDLOG_LOGGER_CALL(spdlog::default_logger().get(), spdlog::level::err, __VA_ARGS__)
  14. #define LOG_WARN(...) SPDLOG_LOGGER_CALL(spdlog::default_logger().get(), spdlog::level::warn, __VA_ARGS__)
  15. #define LOG_CRITICAL(...) SPDLOG_LOGGER_CALL(spdlog::default_logger().get(), spdlog::level::critical, __VA_ARGS__)
  16. #define CRITICAL_LOG(level, fmt, ...) \
  17. do { \
  18. if (auto logger = spdlog::get("critical"); logger) { \
  19. logger->log(level, fmt, ##__VA_ARGS__); \
  20. } \
  21. } while(0)
  22. class Logger
  23. {
  24. public:
  25. enum LOG_LEVEL : int {
  26. TRACE = SPDLOG_LEVEL_TRACE,
  27. DEBUG = SPDLOG_LEVEL_DEBUG,
  28. INFO = SPDLOG_LEVEL_INFO,
  29. WARN = SPDLOG_LEVEL_WARN,
  30. ERR = SPDLOG_LEVEL_ERROR,
  31. CRITICAL = SPDLOG_LEVEL_CRITICAL,
  32. OFF = SPDLOG_LEVEL_OFF,
  33. N_LEVELS
  34. };
  35. Logger();
  36. ~Logger();
  37. static void setup(LOG_LEVEL level, const char *path);
  38. };
  39. #endif // LOGGER_H