aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xbmc/ServiceBroker.cpp5
-rw-r--r--xbmc/ServiceBroker.h1
-rw-r--r--xbmc/platform/android/activity/XBMCApp.cpp14
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;
}