// // Created by erki on 14.03.21. // #ifndef UTILITY_LOGGING_HPP_ #define UTILITY_LOGGING_HPP_ #include "utility_ilogger.hpp" #define SKULLC_LOG(sev, msg, ...) \ Utility::skullc_logger->log("%s: " msg "\n\r", \ Utility::ILogger::level_strs[std::uint8_t(sev)], \ ##__VA_ARGS__) #define SKULLC_LOG_DEBUG(msg, ...) \ SKULLC_LOG(Utility::ILogger::LogLevel::LOG_DEBUG, msg, ##__VA_ARGS__) #define SKULLC_LOG_INFO(msg, ...) \ SKULLC_LOG(Utility::ILogger::LogLevel::LOG_INFO, msg, ##__VA_ARGS__) #define SKULLC_LOG_NOTICE(msg, ...) \ SKULLC_LOG(Utility::ILogger::LogLevel::LOG_NOTICE, msg, ##__VA_ARGS__) #define SKULLC_LOG_WARNING(msg, ...) \ SKULLC_LOG(Utility::ILogger::LogLevel::LOG_WARNING, msg, ##__VA_ARGS__) #define SKULLC_LOG_ERROR(msg, ...) \ SKULLC_LOG(Utility::ILogger::LogLevel::LOG_ERROR, msg, ##__VA_ARGS__) #define SKULLC_LOG_FATAL(msg, ...) \ SKULLC_LOG(Utility::ILogger::LogLevel::LOG_FATAL, msg, ##__VA_ARGS__) namespace Utility { extern ILogger* skullc_logger; void setLogger(ILogger* log); void setLogger(ILogger& log); }// namespace Utility #endif// UTILITY_LOGGING_HPP_