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
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
-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(