安卓底层开发调试中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,不然就为空.
相关文章推荐
- 1034. 有理数四则运算(20)||1088. Rational Arithmetic (20)
- Linux目录结构
- 数据结构:链表,栈堆,队列
- DIST@SAU实验室学生博客名单
- 完全代码实现UITableView下拉更新,异步请求数据
- java这些东西发展(4)-------无穷time of error
- 系统架构师操作系统笔记
- UIScrollView的简单使用 以及一些常用属性
- 算法导论习题(python)Chapter One
- 2个n位数相乘,然后得到最大的回文数
- python列表推导式-轻量级循环
- android利用lrucache存储图片的demo
- Android性能调优
- 性能优化之数据库优化
- JAVA card 应用程序开发(七) JAVA 卡数据(永久数据/)时间数据
- PHP读取excel(5)
- 18家中国域名商(国际域名)解析量报告(6月30日)
- 学习
- Apache 的 httpd.conf 详解
- 百度地图中导航部分引擎初始化失败的解决办法