skullc-peripherals/Utility/Inc/utility_logging.hpp
Erki d945e7a799
Some checks failed
continuous-integration/drone/push Build is failing
Add basic logging framework with a global logger
2021-03-20 23:22:17 +02:00

29 lines
1.0 KiB
C++

//
// 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);
}
#endif //UTILITY_LOGGING_HPP_