Logcat

Logcat是一个强大的日志系统,不过在IDE中它的功能被限制住了。只有在终端中,Logcat才能发挥它最强大的功能。通过adb logcat—help指令,可以查看Logcat的全部功能,这里笔者选择几个比较常用的功能进行讲解。

Logcat选项

开发者通常都在IDE中查看Log,但IDE中的Logcat工具功能并不如在终端中使用强大。在终端下开发者可以通过指定各种参数,控制Logcat的输出。你也可以通过Help指令获取Logcat完整的功能介绍,这里笔者只介绍几个常用的选型。

  • -s

开发者可以通过-s指令,指定输出Log的Tag,即只显示指定Tag的Log内容。

  1. ~ adb logcat -s xys

这样就只会显示Tag为“xys”的Log信息了。

  • -f

开发者可以通过-f指令,将Log信息保存到手机的指定目录下。

  1. ~ adb logcat -f /sdcard/log.txt

这样就将Log日志保存到了手机的SDCard中,这个技巧对于在测试中抓取复现概率较低的问题Log非常有帮助。

  • -v time

开发者通过-v time指令,可以输出详细的Log时间。

  1. ~ adb logcat -v time
  2. 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所示。

Logcat - 图1 图5.8 pidcat

其主要功能是整合不同类型的Log,这在分析App的整体问题时是非常有帮助的。

该工具的安装非常简单,在Mac系统下通过brew即可安装。在该工具的主页上,有详细的安装介绍。

除了类Logcat的工具,还有一些在程序中封装的Log工具,无非是通过封装系统的Log类、StackTrace类和Exception类等API完成一些简化的Log记录。类似的封装,在Github上已经有很多了,这里笔者不再赘述。