upnp: add functionality to get Platinum log messages
authorAlasdair Campbell <alcoheca@gmail.com>
Tue, 29 Apr 2014 23:46:41 +0000 (00:46 +0100)
committermontellese <montellese@xbmc.org>
Wed, 14 May 2014 17:17:50 +0000 (19:17 +0200)
language/English/strings.po
xbmc/commons/ilog.h
xbmc/network/upnp/UPnP.cpp
xbmc/network/upnp/UPnP.h
xbmc/network/upnp/UPnPRenderer.cpp
xbmc/network/upnp/UPnPServer.cpp
xbmc/settings/AdvancedSettings.cpp

index 4835ff0..395f6f4 100755 (executable)
@@ -2861,7 +2861,12 @@ msgctxt "#677"
 msgid "Verbose logging for AirTunes library"
 msgstr ""
 
-#empty strings from id 678 to 699
+#: xbmc/settings/AdvancedSettings.cpp
+msgctxt "#678"
+msgid "Verbose logging for UPnP components"
+msgstr ""
+
+#empty strings from id 679 to 699
 
 msgctxt "#700"
 msgid "Cleaning up library"
index 1b4ed1a..03ccc7d 100644 (file)
@@ -51,6 +51,7 @@
 #define LOGJSONRPC  (1 << (LOGMASKBIT + 6))
 #define LOGAUDIO    (1 << (LOGMASKBIT + 7))
 #define LOGAIRTUNES (1 << (LOGMASKBIT + 8))
+#define LOGUPNP     (1 << (LOGMASKBIT + 9))
 
 #ifdef __GNUC__
 #define ATTRIB_LOG_FORMAT __attribute__((format(printf,3,4)))
index 3331301..53f97e4 100644 (file)
@@ -38,6 +38,7 @@
 #include "utils/log.h"
 #include "URL.h"
 #include "profiles/ProfilesManager.h"
+#include "settings/AdvancedSettings.h"
 #include "settings/Settings.h"
 #include "GUIUserMessages.h"
 #include "FileItem.h"
@@ -98,9 +99,15 @@ DLNA_ORG_FLAGS_VAL = '01500000000000000000000000000000'
 |   NPT_Console::Output
 +---------------------------------------------------------------------*/
 void
-NPT_Console::Output(const char* message)
+NPT_Console::Output(const char* msg) { }
+
+void
+UPnPLogger(const NPT_LogRecord* record)
 {
-    CLog::Log(LOGDEBUG, "%s", message);
+    if (!g_advancedSettings.CanLogComponent(LOGUPNP))
+        return;
+
+    CLog::Log((record->m_Level / 100) - 1, "Platinum [%s]: %s", record->m_LoggerName, record->m_Message);
 }
 
 namespace UPNP
@@ -391,10 +398,15 @@ private:
 CUPnP::CUPnP() :
     m_MediaBrowser(NULL),
     m_MediaController(NULL),
+    m_LogHandler(NULL),
     m_ServerHolder(new CDeviceHostReferenceHolder()),
     m_RendererHolder(new CRendererReferenceHolder()),
     m_CtrlPointHolder(new CCtrlPointReferenceHolder())
 {
+    NPT_LogManager::GetDefault().Configure("plist:.level=FINE;.handlers=CustomHandler;");
+    NPT_LogHandler::Create("CustomHandler", "xbmc", m_LogHandler);
+    m_LogHandler->SetCustomHandlerFunction(&UPnPLogger);
+
     // initialize upnp context
     m_UPnP = new PLT_UPnP();
 
@@ -423,6 +435,7 @@ CUPnP::~CUPnP()
     StopServer();
 
     delete m_UPnP;
+    delete m_LogHandler;
     delete m_ServerHolder;
     delete m_RendererHolder;
     delete m_CtrlPointHolder;
index 4a4fd5a..96194e6 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "utils/StdString.h"
 
+class NPT_LogHandler;
 class PLT_UPnP;
 class PLT_SyncMediaBrowser;
 class PLT_MediaController;
@@ -89,6 +90,7 @@ public:
 private:
     CStdString                  m_IP;
     PLT_UPnP*                   m_UPnP;
+    NPT_LogHandler*             m_LogHandler;
     CDeviceHostReferenceHolder* m_ServerHolder;
     CRendererReferenceHolder*   m_RendererHolder;
     CCtrlPointReferenceHolder*  m_CtrlPointHolder;
index 1a1754a..e344491 100644 (file)
@@ -43,6 +43,8 @@
 #include "playlists/PlayList.h"
 #include "GUIUserMessages.h"
 
+NPT_SET_LOCAL_LOGGER("xbmc.upnp.renderer")
+
 using namespace ANNOUNCEMENT;
 
 namespace UPNP
index 06546b1..6f3fc57 100644 (file)
@@ -46,6 +46,8 @@
 #include "xbmc/GUIUserMessages.h"
 #include "utils/FileUtils.h"
 
+NPT_SET_LOCAL_LOGGER("xbmc.upnp.server")
+
 using namespace std;
 using namespace ANNOUNCEMENT;
 using namespace XFILE;
index 501e00a..342299c 100644 (file)
@@ -1388,6 +1388,9 @@ void CAdvancedSettings::SettingOptionsLoggingComponentsFiller(const CSetting *se
 #ifdef HAS_AIRTUNES
   list.push_back(std::make_pair(g_localizeStrings.Get(677), LOGAIRTUNES));
 #endif
+#ifdef HAS_UPNP
+  list.push_back(std::make_pair(g_localizeStrings.Get(678), LOGUPNP));
+#endif
 }
 
 void CAdvancedSettings::setExtraLogLevel(const std::vector<CVariant> &components)