Ndk-Log

作者: miaoyongjun | 来源:发表于2017-06-27 20:42 被阅读14次

    LOG

    NDK中自带了Log功能 在 #include <android/log.h> 文件下有一个方法

    /*
     * Send a formatted string to the log, used like printf(fmt,...)
     */
    int __android_log_print(int prio, const char* tag, const char* fmt, ...)
    #if defined(__GNUC__)
    #ifdef __USE_MINGW_ANSI_STDIO
    #if __USE_MINGW_ANSI_STDIO
        __attribute__((__format__(gnu_printf, 3, 4)))
    #else
        __attribute__((__format__(printf, 3, 4)))
    #endif
    #else
        __attribute__((__format__(printf, 3, 4)))
    #endif
    #endif
        ;
    

    第一个参数是LOG级别

    typedef enum android_LogPriority {
      ANDROID_LOG_UNKNOWN = 0,
      ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */
      ANDROID_LOG_VERBOSE,
      ANDROID_LOG_DEBUG,
      ANDROID_LOG_INFO,
      ANDROID_LOG_WARN,
      ANDROID_LOG_ERROR,
      ANDROID_LOG_FATAL,
      ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */
    } android_LogPriority;
    

    第二个参数是TAG名称

    第三个参数是可变参数

    在自动生成的代码中,AS会自动帮你定义几个常量

    #define LOGI(...) \
      ((void)__android_log_print(ANDROID_LOG_INFO, kTAG, __VA_ARGS__))
    #define LOGW(...) \
      ((void)__android_log_print(ANDROID_LOG_WARN, kTAG, __VA_ARGS__))
    #define LOGE(...) \
      ((void)__android_log_print(ANDROID_LOG_ERROR, kTAG, __VA_ARGS__))
    

    \ 是换行

    前两个是常量

    VA_ARGS是c++中的可变参数宏

    相关文章

      网友评论

        本文标题:Ndk-Log

        本文链接:https://www.haomeiwen.com/subject/kmtycxtx.html