diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2018-07-16 16:54:58 +0200 |
---|---|---|
committer | Tobrun <tobrun.van.nuland@gmail.com> | 2018-07-16 16:54:58 +0200 |
commit | cf8fc08e701e5b4340700bf08b8125a8d6916d59 (patch) | |
tree | f388f4958d5b1d0fa33f742885e4774a31c205bc /platform/android/src/logger.cpp | |
parent | 8dd559092d6a2757c469f04ee2b5f4ef8cca0d2f (diff) | |
download | qtlocation-mapboxgl-cf8fc08e701e5b4340700bf08b8125a8d6916d59.tar.gz |
[android] - add c++ integratio for logger, platform logs are now forwarded to the abstract loggerupstream/tvn-configurable-logger
Diffstat (limited to 'platform/android/src/logger.cpp')
-rw-r--r-- | platform/android/src/logger.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/platform/android/src/logger.cpp b/platform/android/src/logger.cpp new file mode 100644 index 0000000000..a0d36fb2d4 --- /dev/null +++ b/platform/android/src/logger.cpp @@ -0,0 +1,33 @@ +#include "logger.hpp" +#include "java_types.hpp" + +namespace mbgl { +namespace android { + +void Logger::registerNative(jni::JNIEnv& env) { + _class = *jni::Class<Logger>::Find(env).NewGlobalRef(env).release(); +} + +jni::Class<Logger> Logger::_class; + +void Logger::log(jni::JNIEnv& env, EventSeverity severity, const std::string &msg) { + auto message = jni::Make<jni::String>(env, msg); + using Signature = void(jni::String); + + if(severity == EventSeverity::Debug){ + auto method = _class.GetStaticMethod<Signature>(env, "d"); + _class.Call(env, method, message); + }else if(severity == EventSeverity::Info){ + auto method = _class.GetStaticMethod<Signature>(env, "i"); + _class.Call(env, method, message); + }else if(severity == EventSeverity::Warning){ + auto method = _class.GetStaticMethod<Signature>(env, "w"); + _class.Call(env, method, message); + }else{ + auto method = _class.GetStaticMethod<Signature>(env, "e"); + _class.Call(env, method, message); + } +} + +} // namespace android +} // namespace mbgl |