int __android_log_print(int prio, const char* tag, const char* fmt, ...)
参数 tag 是一个标签,用于标记 日志的类型。
参数 prio 是日志优先级,不同级别的日志在 logcat 中 会以优先级先后进行展示,并以不同 颜色区分。定义如下:
typedef enum android_LogPriority {
/** For internal use only. */
ANDROID_LOG_UNKNOWN = 0,
/** The default priority, for internal use only. */
ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */
/** Verbose logging. Should typically be disabled for a release apk. */
ANDROID_LOG_VERBOSE,
/** Debug logging. Should typically be disabled for a release apk. */
ANDROID_LOG_DEBUG,
/** Informational logging. Should typically be disabled for a release apk. */
ANDROID_LOG_INFO,
/** Warning logging. For use with recoverable failures. */
ANDROID_LOG_WARN,
/** Error logging. For use with unrecoverable failures. */
ANDROID_LOG_ERROR,
/** Fatal logging. For use when aborting. */
ANDROID_LOG_FATAL,
/** For internal use only. */
ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */
} android_LogPriority;
cpp 中一般 枚举定义
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "LogTagVerbose", __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "LogTagDebug", __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , "LogTagInfo", __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , "LogTagWarming", __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "LogTagError", __VA_ARGS__)
在 Android.mk 中需要 添加编译参数
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
-L$(SYSROOT)/usr/lib 表示添加链接库的 搜索路径