39 template <
typename Func>
static void logExecutionTime(
const std::string &message, Func &&func)
41 const auto start = std::chrono::high_resolution_clock::now();
43 const auto end = std::chrono::high_resolution_clock::now();
44 const auto duration = std::chrono::duration<float, std::milli>(end - start).count();
51 static void log(
const std::string &message,
const LogLevel &logLevel)
80 return duration < 20.0F
87 const auto inTime = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
88 std::ostringstream ss;
89 ss <<
"[" << std::put_time(std::localtime(&inTime),
"%Y-%m-%d %X") <<
"] ";
90 ss <<
"[" <<
LOG_LEVEL_STRING[
static_cast<uint8_t
>(level)] <<
"] " << message;
Logger & operator=(const Logger &)=delete
Logger & operator=(Logger &&)=delete
static constexpr std::array< const char *, 2 > LOG_LEVEL_STRING
static constexpr std::array< const char *, 4 > LOG_LEVEL_COLOR
static std::string formatLogMessage(LogLevel level, const std::string &message)
Logger(const Logger &)=delete
static void log(const std::string &message, const LogLevel &logLevel)
static void logExecutionTime(const std::string &message, Func &&func)
static const char * getColorForDuration(const float duration)