22332112
22332112

Reputation: 2397

Can logcat be used to log NDK code in Android? Or what are logging options from NDK?

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

Answers (2)

AnkitSomani
AnkitSomani

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

ATutorMe
ATutorMe

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

Related Questions