#pragma once #include #include "spdlog/spdlog.h" #ifndef SPDLOG_NO_SOURCE_LOC #undef SPDLOG_LOGGER_CALL #define SPDLOG_LOGGER_CALL(logger, level, ...) \ (logger)->log(spdlog::source_loc{__FUNCTION__, __LINE__, SPDLOG_FUNCTION}, level, __VA_ARGS__) #else # define SPDLOG_LOGGER_CALL(logger, level, ...) (logger)->log(spdlog::source_loc{}, level, __VA_ARGS__) #endif class SpdLogger final { public: SpdLogger(const std::string& filename, int flush); ~SpdLogger(); }; extern const char* LoggerName; #define LOG_TRACE(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::trace, __VA_ARGS__) #define LOG_DEBUG(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::debug, __VA_ARGS__) #define LOG_INFO(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::info, __VA_ARGS__) #define LOG_WARN(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::warn, __VA_ARGS__) #define LOG_ERROR(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::err, __VA_ARGS__) #define LOG_CRITI(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::critical, __VA_ARGS__)