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++中的可变参数宏
网友评论