#include "logger.h" #include #include #include namespace utils::common { Logger Logger::instance; void Logger::verbose(const char *fmt, ...) { va_list args; va_start(args, fmt); logf(nvinfer1::ILogger::Severity::kVERBOSE, fmt, args); va_end(args); } void Logger::info(const char *fmt, ...) { va_list args; va_start(args, fmt); logf(nvinfer1::ILogger::Severity::kINFO, fmt, args); va_end(args); } void Logger::warning(const char *fmt, ...) { va_list args; va_start(args, fmt); logf(nvinfer1::ILogger::Severity::kWARNING, fmt, args); va_end(args); } void Logger::error(const char *fmt, ...) { va_list args; va_start(args, fmt); logf(nvinfer1::ILogger::Severity::kERROR, fmt, args); va_end(args); } void Logger::log(nvinfer1::ILogger::Severity severity, const char *msg) noexcept { if ((int)severity > logLevel) return; if (externalLogFunc == nullptr) { switch (severity) { case nvinfer1::ILogger::Severity::kVERBOSE: std::cout << "[VERBOSE] " << msg << std::endl; break; case nvinfer1::ILogger::Severity::kINFO: std::cout << "[INFO] " << msg << std::endl; break; case nvinfer1::ILogger::Severity::kWARNING: std::cerr << "[WARNING] " << msg << std::endl; break; case nvinfer1::ILogger::Severity::kERROR: std::cerr << "[ERROR] " << msg << std::endl; break; case nvinfer1::ILogger::Severity::kINTERNAL_ERROR: std::cerr << "[ERROR] " << msg << std::endl; break; } return; } externalLogFunc((int)severity, msg); } void Logger::logf(nvinfer1::ILogger::Severity severity, const char *fmt, va_list args) { char buffer[4096]; vsprintf(buffer, fmt, args); log(severity, buffer); } } // namespace utils::common