1 /* 2 * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) 3 * 4 * SPDX-License-Identifier: GPL-2.0-or-later 5 * See LICENSE.md for more information. 6 */ 7 8 #include "Logger.h" 9 10 #include "kodi/tools/StringUtils.h" 11 12 using namespace tvheadend::utilities; 13 Logger()14Logger::Logger() 15 { 16 // Use an empty implementation by default 17 SetImplementation([](LogLevel level, const char* message) {}); 18 } 19 GetInstance()20Logger& Logger::GetInstance() 21 { 22 static Logger instance; 23 return instance; 24 } 25 Log(LogLevel level,const char * message,...)26void Logger::Log(LogLevel level, const char* message, ...) 27 { 28 auto& logger = GetInstance(); 29 30 va_list arguments; 31 va_start(arguments, message); 32 const std::string logMessage = kodi::tools::StringUtils::FormatV(message, arguments); 33 va_end(arguments); 34 35 logger.m_implementation(level, logMessage.c_str()); 36 } 37 SetImplementation(LoggerImplementation implementation)38void Logger::SetImplementation(LoggerImplementation implementation) 39 { 40 m_implementation = implementation; 41 } 42