浅谈Android系统开发中LOG的使用

2014-11-24 09:17:36 · 作者: · 浏览: 0

一. 内核开发时LOG的使用。Android内核是基于Linux Kerne 2.36的,因此,Linux Kernel的LOG机制同样适合于Android内核,它就是有名的printk,与C语言的printf齐名。与printf类似,printk提供格式化输入功能,同时,它也具有所有LOG机制的特点--提供日志级别过虑功能。printk提供了8种日志级别():



printk(KERN_ALERT"This is the log printed by printk in linux kernel space.");


KERN_ALERT表示日志级别,后面紧跟着要格式化字符串。


启动adb shell工具:


查看/proc/kmsg文件:


root@android:/ # cat /proc/kmsg


Android系统中的C/C++日志接口是通过宏来使用的。在system/core/include/android/log.h定义了日志的级别:



#define LOG_TAG "MY LOG TAG"


#include


就可以了,例如使用LOGV:


LOGV("This is the log printed by LOGV in android user space.");


再来看Android系统中的Java日志接口。Android系统在Frameworks层中定义了Log接口(frameworks/base/core/java/android/util/Log.java):