首页 > 代码库 > Android adb logcat使用技巧

Android adb logcat使用技巧

前言

新买的笔记本E431装了最新版的Eclipse,搞定了Android开发环境,但是logcat里查看东西竟然只显示level,没有错误的详细信息。我本身也不是一个愿意折腾图形界面,更喜欢纯命令行的操作,因此今天在明昊师兄的建议下,果断放弃Eclipse的logcat,投奔adb shell下执行logcat。

adb logcat

Android日志系统提供了logcat命令可以让我们跟踪和查看系统日志缓存区。基本语法如下:

[adb] logcat [<option>]... [<filter-spec>]

可以直接在命令行通过如下命令查看日志输出:

adb logcat

也可以通过adb shell登录到开发机后,直接执行如下命令:

logcat


option选项


我一般使用-s执行tag标签,例如:



高级功能

在rom porting或者其他debug的场合,需要结合过滤功能才能从logcat中获取真正需要的信息,接下来介绍logcat两种过滤实现方法。

过滤

adb logcat提供了附加功能,基于日志优先级来过滤日志。使用语法如下:

adb logcat *:#

其中,#为下列选项之一:
  • V    详细,表示所有可能的日志,默认级别
  • D    调试,表示所有合理的调试日志
  • I      信息,表示正常使用时的日志
  • W   警告,表示可能有问题,但是还没发生错误
  • E    错误,表示有问题,并且导致错误
所有优先级都自动包含比它高的优先级,例如logcat *:I,包含了信息、警告、错误等信息。因此,当应用崩溃时,更应该集合logcat *:E来查看导致错误的原因,必须费力去查看不着边际的调试日志。

grep

对于adb logcat输出的日志内容,我们还可以结合grep实现进一步的过滤操作。例如,我需要搜索错误报告中包含“wangzhengyi”关键词的日志,可以采用如下命令:

adb logcat *:E | grep -i 'wangzhengyi'