skullc-peripherals/Utility/Inc/utility_logging.hpp
Erki 55a8efa579
All checks were successful
continuous-integration/drone/push Build is passing
Clang format pass
2021-04-03 17:49:25 +03:00

38 lines
1.2 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);
}// namespace Utility
#endif// UTILITY_LOGGING_HPP_