Reputation: 2397
How would one write logs from inside Native code in Android (NDK)? What are the available options? For example, can logcat be used from inside of NDK to write logs? Or since its more upper level in android, it can not be accessible from NDK?
At the moment I am just aware of writing times from C code with:
millis = System.currentTimeMillis();
And with function that would write this time plus any messages to a custom log file.
Upvotes: 18
Views: 26299
Reputation: 1192
You can use the Android logging
#include <android/log.h>
#define APPNAME "MyApp"
__android_log_print(ANDROID_LOG_VERBOSE, APPNAME, "My Log");
Also Make sure you also link against the logging library, in your Android.mk file:
LOCAL_LDLIBS := -llog
It has already been discussed at Any simple way to log in Android NDK code?
Upvotes: 43
Reputation: 874
If you are using the newer Android Studio versions (2.2+) that use CMake, then you will find the following automatically added to your CMakeLists.txt file when you generate a new project with C++ support:
find_library( # Sets the name of the path variable.
log-lib
# Specifies the name of the NDK library that
# you want CMake to locate.
log )
and
target_link_libraries( # Specifies the target library.
your-lib1
your-lib2
...
# Links the target library to the log library
# included in the NDK.
${log-lib} )
Upvotes: 23