前言
新买的笔记本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'