Orange/include/Orange/Core/Log.h

33 lines
902 B
C++

#pragma once
#include <Orange/Core/Types.h>
#include <stb/stb_sprintf.h>
#define Assert(...)
namespace orange::log
{
namespace LogLevels
{
enum LogLevel
{
Fatal,
Error,
Warning,
Info,
Debug,
Count
};
}
using LogLevel = LogLevels::LogLevel;
void log(LogLevel level, const char* fmt, ...);
template <typename... Args> void debug(Args&&... args) { log(LogLevels::Debug, args...); }
template <typename... Args> void info (Args&&... args) { log(LogLevels::Info, args...); }
template <typename... Args> void warn (Args&&... args) { log(LogLevels::Warning, args...); }
template <typename... Args> void err (Args&&... args) { log(LogLevels::Error, args...); }
template <typename... Args> void fatal(Args&&... args) { log(LogLevels::Fatal, args...); }
}