1 /* 2 * Copyright (C) 2005-2018 Team Kodi 3 * This file is part of Kodi - https://kodi.tv 4 * 5 * SPDX-License-Identifier: GPL-2.0-or-later 6 * See LICENSES/README.md for more information. 7 */ 8 9 #pragma once 10 11 #define LOG_LEVEL_NONE -1 // nothing at all is logged 12 #define LOG_LEVEL_NORMAL 0 // shows notice, error, severe and fatal 13 #define LOG_LEVEL_DEBUG 1 // shows all 14 #define LOG_LEVEL_DEBUG_FREEMEM 2 // shows all + shows freemem on screen 15 #define LOG_LEVEL_MAX LOG_LEVEL_DEBUG_FREEMEM 16 17 // ones we use in the code 18 #define LOGDEBUG 0 19 #define LOGINFO 1 20 #define LOGWARNING 2 21 #define LOGERROR 3 22 #define LOGFATAL 4 23 #define LOGNONE 5 24 25 // extra masks - from bit 5 26 #define LOGMASKBIT 5 27 #define LOGMASK ((1 << LOGMASKBIT) - 1) 28 29 #define LOGSAMBA (1 << (LOGMASKBIT + 0)) 30 #define LOGCURL (1 << (LOGMASKBIT + 1)) 31 #define LOGFFMPEG (1 << (LOGMASKBIT + 2)) 32 #define LOGDBUS (1 << (LOGMASKBIT + 4)) 33 #define LOGJSONRPC (1 << (LOGMASKBIT + 5)) 34 #define LOGAUDIO (1 << (LOGMASKBIT + 6)) 35 #define LOGAIRTUNES (1 << (LOGMASKBIT + 7)) 36 #define LOGUPNP (1 << (LOGMASKBIT + 8)) 37 #define LOGCEC (1 << (LOGMASKBIT + 9)) 38 #define LOGVIDEO (1 << (LOGMASKBIT + 10)) 39 #define LOGWEBSERVER (1 << (LOGMASKBIT + 11)) 40 #define LOGDATABASE (1 << (LOGMASKBIT + 12)) 41 #define LOGAVTIMING (1 << (LOGMASKBIT + 13)) 42 #define LOGWINDOWING (1 << (LOGMASKBIT + 14)) 43 #define LOGPVR (1 << (LOGMASKBIT + 15)) 44 #define LOGEPG (1 << (LOGMASKBIT + 16)) 45 #define LOGANNOUNCE (1 << (LOGMASKBIT + 17)) 46 47 #include "utils/params_check_macros.h" 48 49 namespace XbmcCommons 50 { 51 class ILogger 52 { 53 public: 54 virtual ~ILogger() = default; 55 void Log(int loglevel, PRINTF_FORMAT_STRING const char *format, ...) PARAM3_PRINTF_FORMAT; 56 57 virtual void log(int loglevel, IN_STRING const char* message) = 0; 58 }; 59 } 60 61