#pragma once #include "logging/logger.hpp" namespace kuiper { /// @brief Singleton class providing engine-wide logging facilities class engine_logger { private: engine_logger() = default; public: ~engine_logger() = default; public: static inline engine_logger& get(void) { static engine_logger s_instance; return s_instance; } template inline void trace(const char* fmt, Args... args) { m_log.trace(fmt, args...); } template inline void debug(const char* fmt, Args... args) { m_log.debug(fmt, args...); } template inline void info(const char* fmt, Args... args) { m_log.info(fmt, args...); } template inline void warn(const char* fmt, Args... args) { m_log.warn(fmt, args...); } template inline void error(const char* fmt, Args... args) { m_log.error(fmt, args...); } template inline void critical(const char* fmt, Args... args) { m_log.critical(fmt, args...); } private: kuiper::logger m_log {"engine"}; }; } // namespace kuiper