#include "logger_base.hh" #include #include #include #include void LoggerBase::err(char const* format, ...) { va_list args; va_start(args, format); char* tmp = nullptr; auto len = vasprintf(&tmp, format, args); va_end(args); if (len == -1) { assert(false); return; } while (len > 0 && tmp[len - 1] == '\n') --len; msg(Level::ERR, std::string_view(tmp, len)); free(tmp); } void LoggerBase::warn(char const* format, ...) { va_list args; va_start(args, format); char* tmp = nullptr; auto len = vasprintf(&tmp, format, args); va_end(args); if (len == -1) { assert(false); return; } while (len > 0 && tmp[len - 1] == '\n') --len; msg(Level::WARN, std::string_view(tmp, len)); free(tmp); } void LoggerBase::info(char const* format, ...) { va_list args; va_start(args, format); char* tmp = nullptr; auto len = vasprintf(&tmp, format, args); va_end(args); if (len == -1) { assert(false); return; } while (len > 0 && tmp[len - 1] == '\n') --len; msg(Level::INFO, std::string_view(tmp, len)); free(tmp); } #ifndef NDEBUG void LoggerBase::dbg(char const* format, ...) { va_list args; va_start(args, format); char* tmp = nullptr; auto len = vasprintf(&tmp, format, args); va_end(args); if (len == -1) { assert(false); return; } while (len > 0 && tmp[len - 1] == '\n') --len; msg(Level::DBG, std::string_view(tmp, len)); free(tmp); } #endif