[SCM] kodi-pvr-hts/master: change some semantics and make the log message prefix configurable

tiber-guest at users.alioth.debian.org tiber-guest at users.alioth.debian.org
Wed Mar 2 23:01:53 UTC 2016


The following commit has been merged in the master branch:
commit 289fb5241031a612afbf246ee5507d9f256b4ba5
Author: Sam Stenvall <sam.stenvall at nordsoftware.com>
Date:   Sun Jan 3 19:07:41 2016 +0200

    change some semantics and make the log message prefix configurable

diff --git a/src/client.cpp b/src/client.cpp
index 0fee62c..de66152 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -84,7 +84,7 @@ ADDON_STATUS ADDON_Create(void* hdl, void* _unused(props))
   }
 
   /* Configure the logger */
-  Logger::SetImplementation([](LogLevel level, const char *message)
+  Logger::GetInstance().SetImplementation([](LogLevel level, const char *message)
   {
     /* Convert the log level */
     addon_log_t addonLevel;
@@ -108,6 +108,8 @@ ADDON_STATUS ADDON_Create(void* hdl, void* _unused(props))
     XBMC->Log(addonLevel, message);
   });
 
+  Logger::GetInstance().SetPrefix("pvr.hts");
+
   Logger::Log(LogLevel::INFO, "starting PVR client");
 
   ADDON_ReadSettings();
diff --git a/src/tvheadend/utilities/Logger.h b/src/tvheadend/utilities/Logger.h
index 40f5f54..38dd6bb 100644
--- a/src/tvheadend/utilities/Logger.h
+++ b/src/tvheadend/utilities/Logger.h
@@ -42,7 +42,7 @@ namespace tvheadend
     /**
      * Short-hand for a function that acts as the logger implementation
      */
-    typedef std::function<void(LogLevel level, const char *message)> LogImplementation;
+    typedef std::function<void(LogLevel level, const char *message)> LoggerImplementation;
 
     /**
      * The logger class. It is a singleton that by default comes with no
@@ -54,6 +54,16 @@ namespace tvheadend
     public:
 
       /**
+       * Returns the singleton instance
+       * @return
+       */
+      static Logger &GetInstance()
+      {
+        static Logger instance;
+        return instance;
+      }
+
+      /**
        * Logs the specified message using the specified log level
        * @param level the log level
        * @param message the log message
@@ -61,24 +71,31 @@ namespace tvheadend
        */
       static void Log(LogLevel level, const std::string &message, ...)
       {
+        auto &logger = GetInstance();
+
         char buffer[MESSAGE_BUFFER_SIZE];
-        std::string logMessage = "pvr.hts - " + message;
+        std::string logMessage = message;
+        std::string prefix = logger.m_prefix;
+
+        // Prepend the prefix when set
+        if (!prefix.empty())
+          logMessage = prefix + " - " + message;
 
         va_list arguments;
         va_start(arguments, message);
         vsprintf(buffer, logMessage.c_str(), arguments);
         va_end(arguments);
 
-        GetInstance().m_implementation(level, buffer);
+        logger.m_implementation(level, buffer);
       }
 
       /**
        * Configures the logger to use the specified implementation
        * @þaram implementation lambda
        */
-      static void SetImplementation(LogImplementation implementation)
+      void SetImplementation(LoggerImplementation implementation)
       {
-        GetInstance().m_implementation = implementation;
+        m_implementation = implementation;
       }
 
     private:
@@ -88,18 +105,14 @@ namespace tvheadend
       { };
 
       /**
-       * @return the instance
+       * The logger implementation
        */
-      static Logger &GetInstance()
-      {
-        static Logger instance;
-        return instance;
-      }
+      LoggerImplementation m_implementation;
 
       /**
-       * The logger implementation
+       * The log message prefix
        */
-      LogImplementation m_implementation;
+      std::string m_prefix;
 
     };
   }

-- 
kodi-pvr-hts packaging



More information about the pkg-multimedia-commits mailing list