您的位置:首页 > 其它

安卓底层开发调试中log的使用

2015-07-03 10:20 330 查看
最近在调试安卓底层,发现一直想打印ALOGV但都看不见日志输出。原来,系统默认是不打印v级的日志,需要添加代码
#define LOG_NDEBUG   0  //打开LOGV

#define LOG_NIDEBUG  0  //打开LOGI
#define LOG_NDDEBUG 0 //打开LOGD

可以直接使用以下代码打开所有日志开关: #undef NDEBUG       //打开LOGV/LOGI/LOGD
也可以使用LOGD函数打印日志,使用方法为:
第一步:在对应的mk文件中加入:LOCAL_LDLIBS := -llog
第二步:在要使用LOG的cpp文件中加入:#define LOG_TAG "TAG"
#include <android/log.h>
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
接下来就可以使用LOGD函数打印日志啦,全部日志函数定义如下:#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, 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__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN  , LOG_TAG, __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR  , LOG_TAG, __VA_ARGS__)
这里要注意的是,LOG_TAG的定义一定要在#include  <android/log.h>这个头文件之前,这是为什么呢?我们打开system/core/include/cutils/log.h头文件可以看到:
#ifndef LOG_TAG
#define LOG_TAG NULL
#endif
所以程序中引入log.h头文件之前要定义LOG_TAG,不然就为空.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: