Logcat
Logcat是一个强大的日志系统,不过在IDE中它的功能被限制住了。只有在终端中,Logcat才能发挥它最强大的功能。通过adb logcat—help指令,可以查看Logcat的全部功能,这里笔者选择几个比较常用的功能进行讲解。
Logcat选项
开发者通常都在IDE中查看Log,但IDE中的Logcat工具功能并不如在终端中使用强大。在终端下开发者可以通过指定各种参数,控制Logcat的输出。你也可以通过Help指令获取Logcat完整的功能介绍,这里笔者只介绍几个常用的选型。
- -s
开发者可以通过-s指令,指定输出Log的Tag,即只显示指定Tag的Log内容。
- ➜ ~ adb logcat -s xys
这样就只会显示Tag为“xys”的Log信息了。
- -f
开发者可以通过-f指令,将Log信息保存到手机的指定目录下。
- ➜ ~ adb logcat -f /sdcard/log.txt
这样就将Log日志保存到了手机的SDCard中,这个技巧对于在测试中抓取复现概率较低的问题Log非常有帮助。
- -v time
开发者通过-v time指令,可以输出详细的Log时间。
- ➜ ~ adb logcat -v time
- 01-12 10:42:02.702 D/xys (28325): test log
- grep
grep指令在各种终端指令中都非常有用,在过滤Log时也非常方便。例如开发者在代码中增加了一个调试Log,那么直接grep该Log关键字就可以准确获取该Log信息。
- 重定向符>
重定向符>是使用非常广泛的一个指令。特别是在调试程序的时候,可以直接把Logcat的输出Log保存到PC中,然后进行日志分析。这个笔者在前面的文章中已经进行了介绍,这里不再赘述。
第三方Log工具
针对Logcat,开发者还可以定制自己的Log系统。例如开发大神Jake Wharton所提供的pidcat工具,地址如下所示。
https://github.com/JakeWharton/pidcat
该工具的显示效果如图5.8所示。
图5.8 pidcat
其主要功能是整合不同类型的Log,这在分析App的整体问题时是非常有帮助的。
该工具的安装非常简单,在Mac系统下通过brew即可安装。在该工具的主页上,有详细的安装介绍。
除了类Logcat的工具,还有一些在程序中封装的Log工具,无非是通过封装系统的Log类、StackTrace类和Exception类等API完成一些简化的Log记录。类似的封装,在Github上已经有很多了,这里笔者不再赘述。
