标题:
1、dlt-rk3288开源硬件学习笔记-logcat命令学习
2、logcat 命令学习
3、logcat 查看Andriod log系统日志
4、查看Andriod log系统日志
软件开发中,查看系统Log是必不可少。
我们知道Linux 内核用printk输出的调试信息,在串口终端上可以看到。但Android 系统调试信息呢?
Android 系统庞大,系统日志太多。不能像内核 一样直接输出到串口,需要用logcat命令来查看。
基本原理是:Android系统先把日志放到缓存(循环缓存)。当用户输入logcat时,再把缓存中的日志输出到串口。
不然不仅看花眼,还影响开机速度、运行速度。
locat 是一个命令,可以在adb shell上运行,也可以在调试串口控制台运行。
(DLT-RK3288默认调试串口是UART2。DLT-RK3288 为了方便调试方便,板子上加了CH340 ,将串口接口转为USB接口。这是这 款产品一个亮点。省了USB转串口线了,普通的android数据线即可以用。
logcat 会输出系统哪些信息呢?
系统源码中所有被运行的 Log.*、Slog函数,其信息用用logcat都能看到。例如:
- Log.w(TAG, "Unable to retrieve font size");
复制代码
每一个输出的Android日志信息都有一个标签和它的优先级.
如何使用logcat ?
详细使用方法可以用logcat --help 查看
大概意思:
-b <buffer> 加载一个可使用的日志缓冲区供查看,比如event 和radio . 默认值是main 。具体查看Viewing Alternative Log Buffers.
-c 清楚屏幕上的日志.
-d 输出日志到屏幕上.
-f <filename> 指定输出日志信息的<filename> .
-g 输出指定的日志缓冲区,输出后退出.
-n <count> 设置日志的最大数目<count> .,默认值是4,需要和 -r 选项一起使用。
-r <kbytes> 每<kbytes> 时输出日志,默认值为16,需要和-f 选项一起使用.
-s 设置默认的过滤级别为silent.
-v <format> 设置日志输入格式,默认的是brief 格式,要知道更多的支持的格式,参看Controlling Log Output Format。
logcat 使用方法太多,这里只介绍几条常用、入门级的方法
1、查看Android所有的log
串口命令行下敲入logcat命令。如果不想再看log,按CTL+C组合按键结束。
每一个输出的Android日志信息都有一个标签和它的优先级。
DLT-RK3288 Android 5.1 输出格式为:优先级/标签
上图的 V、D、I就是优先级,PhoneWindowManager和PowerManagerService 是两个不同的Tag。
优先级有:debug、必要信息、警告、错误等信息。
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent (supress all output)
对应源码中的函数:Log.v 、Log.d 、Log.i 、Log.w 、Log.e。(或SLog.*) 。
Tag 可以自己定义,一般文件名一样,方便源码位置的查找。
如PhoneWindowManager对应的 frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java 源码里面的。
2、logcat -c 清除已有log。
logcat -c 命令执行之前的log将被清除。
3、logcat -b 查看部分log
例如:我们调试3G/4G模块时常用 logcat -b raido 查看ril的log。
类似的还有 logcat -b main 、logcat -b events等。
4、logcat -v time 输出log执行时的时间。
例如:logcat -v time -b radio 转存失败重新上传取消
5、logcat -f 保存log到指定的文件。
例如 logcat -b radio -f /data/radio.log
6、logcat & 后台运行logcat
logcat 和常用linux命令没什么区别,加&可以让它在后台运行。这样既可以看log,又可以敲其他shell命令。