summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2015-04-08 20:18:50 (GMT)
committerKevin Smith <kevin.smith@isode.com>2015-04-08 20:35:34 (GMT)
commit865ad6a0d605d6cfce1d4503c97f6a66f201f19b (patch)
treeffe7072ae1db8f89742b306fc81336f95357b475 /Swiften
parentd321b10cb84b4ebb919b62de50c76aac6eb72a4d (diff)
downloadswift-865ad6a0d605d6cfce1d4503c97f6a66f201f19b.zip
swift-865ad6a0d605d6cfce1d4503c97f6a66f201f19b.tar.bz2
Add optional logging to native log framework on Android
To enable native Android logging you need to pass "-DSWIFT_ANDROID_LOGGING" to the "cxxflags" and "-llog" to the "linkflags". Test-Information: Tested on OS X 10.9.5, with NDK API level 14 on an emulated Android 4.0 ARM instance. Tested that if enabled, Swift log messages appear in the Android system log via "adb logcat" instead of appearing on stdout. Change-Id: If89c870f0b664a5e65ccc1fa8a244826d2875ec1
Diffstat (limited to 'Swiften')
-rw-r--r--Swiften/Base/Log.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/Swiften/Base/Log.cpp b/Swiften/Base/Log.cpp
index edf6f61..4879766 100644
--- a/Swiften/Base/Log.cpp
+++ b/Swiften/Base/Log.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2013 Isode Limited.
+ * Copyright (c) 2010-2015 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -8,6 +8,10 @@
#include <cstdio>
+#if defined(SWIFT_ANDROID_LOGGING) && defined(__ANDROID__)
+#include <android/log.h>
+#endif
+
namespace Swift {
@@ -17,9 +21,13 @@ Log::Log() {
}
Log::~Log() {
+#if defined(SWIFT_ANDROID_LOGGING) && defined(__ANDROID__)
+ __android_log_print(ANDROID_LOG_VERBOSE, "Swift", stream.str().c_str(), 1);
+#else
// Using stdio for thread safety (POSIX file i/o calls are guaranteed to be atomic)
fprintf(stderr, "%s", stream.str().c_str());
fflush(stderr);
+#endif
}
std::ostringstream& Log::getStream(