1 #pragma once 2 3 #include <inttypes.h> 4 #include <stdio.h> 5 6 #include <phosphor-logging/log.hpp> 7 8 #include <cstdarg> 9 10 namespace util 11 { 12 13 /* 14 * @brief callback function for logging with log level 15 * 16 * @param loglevel PDBG log level 17 * @param format format of output function, same as in printf() 18 * @param args variable list 19 * 20 * @return none 21 */ pdbg_log_callback(const int loglevel,const char * format,va_list args)22inline void pdbg_log_callback(const int loglevel, const char* format, 23 va_list args) 24 { 25 constexpr size_t MSG_MAX_LEN = 256; 26 char msg[MSG_MAX_LEN]; 27 vsnprintf(msg, MSG_MAX_LEN, format, args); 28 29 switch (loglevel) 30 { 31 case PDBG_ERROR: 32 phosphor::logging::log<phosphor::logging::level::ERR>(msg); 33 break; 34 case PDBG_WARNING: 35 phosphor::logging::log<phosphor::logging::level::WARNING>(msg); 36 break; 37 case PDBG_NOTICE: 38 phosphor::logging::log<phosphor::logging::level::NOTICE>(msg); 39 break; 40 case PDBG_INFO: 41 phosphor::logging::log<phosphor::logging::level::INFO>(msg); 42 break; 43 case PDBG_DEBUG: 44 phosphor::logging::log<phosphor::logging::level::DEBUG>(msg); 45 break; 46 default: 47 phosphor::logging::log<phosphor::logging::level::ERR>(msg); 48 break; 49 } 50 } 51 52 } // namespace util 53