30template<
typename ...Args>
33 constexpr size_t kN =
sizeof...(Args);
43#define LOG(TAG, LEVEL, FORMAT, ...) Foundation_Log(#TAG, LEVEL, FORMAT __VA_OPT__(,) __VA_ARGS__);
45#define CHECK(expr) if(!(expr)) { \
46 LOG(Core, LogError, "Check failed: " #expr); \
47 throw std::runtime_error( #expr ); \
50#define CHECK_MSG(expr, format_str, ...) if(!(expr)) { \
51 LOG(Core, LogError, format_str __VA_OPT__(,) __VA_ARGS__); \
52 throw std::runtime_error( #expr ); \
void Foundation_Log(const char *tag, LogLevel level, fmt::format_string< Args... > format, Args &&... args)
Definition Logging.hpp:31
constexpr const char * format_as(LogLevel level)
Definition Logging.hpp:16
LogLevel
Definition Logging.hpp:9
@ LogWarn
Definition Logging.hpp:12
@ LogDebug
Definition Logging.hpp:10
@ LogError
Definition Logging.hpp:13
@ LogInfo
Definition Logging.hpp:11
void Foundation_LogImpl(LogLevel level, const char *tag, std::string_view formatted)
Definition Logging.cpp:6