diff options
-rw-r--r-- | xbmc/ServiceBroker.cpp | 5 | ||||
-rw-r--r-- | xbmc/ServiceBroker.h | 1 | ||||
-rw-r--r-- | xbmc/platform/android/activity/XBMCApp.cpp | 14 |
3 files changed, 19 insertions, 1 deletions
diff --git a/xbmc/ServiceBroker.cpp b/xbmc/ServiceBroker.cpp index 1d4a449df0..a8b62d3063 100644 --- a/xbmc/ServiceBroker.cpp +++ b/xbmc/ServiceBroker.cpp @@ -57,6 +57,11 @@ void CServiceBroker::CreateLogging() g_serviceBroker.m_logging = std::make_unique<CLog>(); } +bool CServiceBroker::IsLoggingUp() +{ + return g_serviceBroker.m_logging ? true : false; +} + void CServiceBroker::DestroyLogging() { g_serviceBroker.m_logging.reset(); diff --git a/xbmc/ServiceBroker.h b/xbmc/ServiceBroker.h index dc502e40b8..9aaec4c98b 100644 --- a/xbmc/ServiceBroker.h +++ b/xbmc/ServiceBroker.h @@ -127,6 +127,7 @@ public: static CLog& GetLogging(); static void CreateLogging(); + static bool IsLoggingUp(); static void DestroyLogging(); static std::shared_ptr<ANNOUNCEMENT::CAnnouncementManager> GetAnnouncementManager(); diff --git a/xbmc/platform/android/activity/XBMCApp.cpp b/xbmc/platform/android/activity/XBMCApp.cpp index 8e0ef1d2fa..4a1c2551bc 100644 --- a/xbmc/platform/android/activity/XBMCApp.cpp +++ b/xbmc/platform/android/activity/XBMCApp.cpp @@ -770,7 +770,19 @@ int CXBMCApp::android_printf(const char *format, ...) // For use before CLog is setup by XBMC_Run() va_list args; va_start(args, format); - int result = __android_log_vprint(ANDROID_LOG_VERBOSE, "Kodi", format, args); + int result; + if (CServiceBroker::IsLoggingUp()) + { + std::string message; + int len = vsnprintf(0, 0, format, args); + message.resize(len); + result = vsnprintf(&message[0], len + 1, format, args); + CLog::Log(LOGDEBUG, message); + } + else + { + result = __android_log_vprint(ANDROID_LOG_VERBOSE, "Kodi", format, args); + } va_end(args); return result; } |