diff options
author | tobrun <tobrun.van.nuland@gmail.com> | 2018-07-12 14:45:18 +0200 |
---|---|---|
committer | tobrun <tobrun.van.nuland@gmail.com> | 2018-07-12 14:45:18 +0200 |
commit | aa66d2d9c0700bf89fd708ce72c4b2689a9f70d2 (patch) | |
tree | fcbd08269156f549cac365d86c86532c21a256ef | |
parent | bf69f1a2d3ed4e6792b5ebc704b9cb70c02e6f57 (diff) | |
download | qtlocation-mapboxgl-upstream/tvn-timber-log.tar.gz |
[android] - enable error severity logging of timberupstream/tvn-timber-log
-rw-r--r-- | platform/android/config.cmake | 2 | ||||
-rwxr-xr-x | platform/android/src/jni.cpp | 4 | ||||
-rw-r--r-- | platform/android/src/logging_android.cpp | 7 | ||||
-rwxr-xr-x | platform/android/src/native_map_view.cpp | 3 | ||||
-rw-r--r-- | platform/android/src/timber.cpp | 20 | ||||
-rw-r--r-- | platform/android/src/timber.hpp | 24 |
6 files changed, 59 insertions, 1 deletions
diff --git a/platform/android/config.cmake b/platform/android/config.cmake index fa26987e5a..ce97bd8426 100644 --- a/platform/android/config.cmake +++ b/platform/android/config.cmake @@ -43,6 +43,8 @@ macro(mbgl_platform_core) PRIVATE platform/android/src/text/local_glyph_rasterizer_jni.hpp PRIVATE platform/android/src/logging_android.cpp PRIVATE platform/android/src/thread.cpp + PRIVATE platform/android/src/timber.cpp + PRIVATE platform/android/src/timber.hpp PRIVATE platform/default/string_stdlib.cpp PRIVATE platform/default/bidi.cpp PRIVATE platform/default/thread_local.cpp diff --git a/platform/android/src/jni.cpp b/platform/android/src/jni.cpp index beb2c14eb3..43fad77b46 100755 --- a/platform/android/src/jni.cpp +++ b/platform/android/src/jni.cpp @@ -49,6 +49,7 @@ #include "text/collator_jni.hpp" #include "text/local_glyph_rasterizer_jni.hpp" #include "java/lang.hpp" +#include "timber.hpp" namespace mbgl { namespace android { @@ -191,6 +192,9 @@ void registerNatives(JavaVM *vm) { LocalGlyphRasterizer::registerNative(env); Locale::registerNative(env); Collator::registerNative(env); + + // log + Timber::registerNative(env); } } // namespace android diff --git a/platform/android/src/logging_android.cpp b/platform/android/src/logging_android.cpp index 2e025c059f..786bb39c52 100644 --- a/platform/android/src/logging_android.cpp +++ b/platform/android/src/logging_android.cpp @@ -1,6 +1,8 @@ #include <mbgl/util/logging.hpp> #include <android/log.h> +#include "timber.hpp" +#include "attach_env.hpp" namespace mbgl { @@ -29,6 +31,9 @@ int severityToPriority(EventSeverity severity) { void Log::platformRecord(EventSeverity severity, const std::string &msg) { __android_log_print(severityToPriority(severity), "mbgl", "%s", msg.c_str()); + if(severity == EventSeverity::Error) { + auto env{ android::AttachEnv() }; + android::Timber::logError(*env, jni::Make<jni::String>(*env, msg.c_str())); + } } - } diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index c648a22893..b7c9cbb932 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -52,6 +52,7 @@ #include "map/image.hpp" #include "style/light.hpp" #include "bitmap_factory.hpp" +#include "timber.hpp" namespace mbgl { namespace android { @@ -72,6 +73,8 @@ NativeMapView::NativeMapView(jni::JNIEnv& _env, return; } + Timber::logError(_env, jni::Make<jni::String>(_env, "hello world")); + // Get native peer for file source mbgl::FileSource& fileSource = mbgl::android::FileSource::getDefaultFileSource(_env, jFileSource); diff --git a/platform/android/src/timber.cpp b/platform/android/src/timber.cpp new file mode 100644 index 0000000000..1a96dc3c5e --- /dev/null +++ b/platform/android/src/timber.cpp @@ -0,0 +1,20 @@ +#include "timber.hpp" +#include "java_types.hpp" + +namespace mbgl { +namespace android { + +void Timber::registerNative(jni::JNIEnv& env) { + _class = *jni::Class<Timber>::Find(env).NewGlobalRef(env).release(); +} + +jni::Class<Timber> Timber::_class; + +void Timber::logError(jni::JNIEnv& env, jni::String error) { + using Signature = void(jni::String, jni::Array<jni::Object<>>); + auto method = _class.GetStaticMethod<Signature>(env, "e"); + return _class.Call(env, method, error, jni::Array<jni::Object<>>()); +} + +} // namespace android +} // namespace mbgl diff --git a/platform/android/src/timber.hpp b/platform/android/src/timber.hpp new file mode 100644 index 0000000000..1acaf39c13 --- /dev/null +++ b/platform/android/src/timber.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include <jni/jni.hpp> + +#include "bitmap.hpp" + +namespace mbgl { +namespace android { + +class Timber { +public: + static constexpr auto Name() { + return "timber/log/Timber"; + }; + static void registerNative(jni::JNIEnv&); + + static void logError(jni::JNIEnv&, jni::String error); + + private: + static jni::Class<Timber> _class; + }; + +} // namespace android +} // namespace mbgl |