Logging values of variables in Android native ndk

后端 未结 4 1778
甜味超标
甜味超标 2021-01-30 16:33

I set up logging with C++ in Android NDK.

I can print a message to logcat like this:

__android_log_write(ANDROID_LOG_INFO, \"tag here\", \"mess         


        
相关标签:
4条回答
  • 2021-01-30 16:40

    You could use __android_log_print which uses a sprintf-like syntax that formats your data into a string.

    __android_log_print(ANDROID_LOG_INFO, "sometag", "test int = %d", testInt);
    
    0 讨论(0)
  • 2021-01-30 16:49

    __android_log_print() takes a format string and a variable argument list. The format specifier you're looking for to print out a signed integer is "%d". So something like this is what you want:

    int foo = 42;
    __android_log_print(ANDROID_LOG_INFO, "SomeTag", "foo is %d", foo);
    

    For more information on format strings, you can see the sprintf manual.

    0 讨论(0)
  • 2021-01-30 17:00

    Here's the most concise way I've seen:

    #include <android/log.h>
    
    #define  LOG_TAG    "someTag"
    
    #define  LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
    #define  LOGW(...)  __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__)
    #define  LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
    #define  LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
    
    ...
    
    // Now you can log very simply like this:
    int foo = 42;
    LOGD( "This is a number from JNI: %d", foo );
    

    Also, make sure you link to the log library in your Android.mk:

    LOCAL_LDLIBS    := -llog
    
    0 讨论(0)
  • 2021-01-30 17:00

    Take advantage of the variadic log print function you have available. For my own code, I provide a LogInfo() function to make it simple. Of course there are several options available to you here.

    void LogInfo(const char *sTag, const char *fmt, ...)
    {
      va_list ap;
      va_start(ap, fmt);
      __android_log_vprint(ANDROID_LOG_INFO, sTag, fmt, ap);
      va_end(ap);
    }
    
    0 讨论(0)
提交回复
热议问题