1、adb logcat
1)此命令用于输出手机或模块器开机以及用户对手机/模拟器进行操作后生成的系统日志,最后显示的日志为用户最近操作记录的日志。
2)logcat输出的日志类似为
备注:(一)日志格式为:等级(I)/标签(Activity)
即<priority>/<tag>
(二)日志的等由小到大为:
V--明细(view)
D--调式(debug)
I--信息(information)
W--警告(warm)
E--错误(error)
F--严重错误(fail)
S--无记载(最高级别,没有什么被 记载)
3)如果想要减少输出的内容,可以在adb logcat后面加上过滤表达式来限制系统只出来目标日志。可用多个表达一起限制。
4)过滤表达式的格式为:tag:prority (因为同一个tag可以有不同的优先级)
如:adb logcat ActivityManager:I MyApp:D *:S
备注1:仅用于输出标记为“ActivityManager”且优先级大于等于"I"和标记为“MyApp”,优先级大于等于"Debug"的日志。
备注2:*:S是用于设置ActivityManager:I MyApp:D输出的日志再次过滤 ,标记这些日志的优先级为S(即只输入ActivityManager:I MyApp:D日志,其他的不输出)
备注3:一般都会在过滤后加上*:S以输出符合指令的日志
5)adb logcat *:W // "*"是指所有的tag, "*:W"是指输出所有的优先级为W以上的所有tag日志信息
6)adb logcat是用在pc端以打印logcat;adb shell logcat是用于连上手机或模拟器后,远程获取模拟器的系统日志。两者打印出来的日志是一样的。
7)控制日志的输出格式:
日志消息在标记和优先之外还有很多其他字段,这些字体可以通过修改输出格式来控制输出结果,adb logcat -v +下面的字段就可以输出相应的日志格式。
brief:
(按默认方式显示日志)
process:
(priority<process 号> 日志信息)
tag:
(priority/tag: 日志信息)
thread:
(priority<线程名称>日志信息)
raw:
(只显示日志信息)
time:
(时间 priority/tag<process号>:日志信息)
long:
(时间 priority/tag<process号>:日志信息),但它是隔一行输出日志
备注:Start是指启动了service,但没有启动过Activity.START+Displayed是指用户启动过的Activity
![](/images/smiles/icon_cool.gif)
Viewing Alternative Log Buffers
Android 日志系统为日志消息保留了多个循环缓冲区,而且不是所有的消息都被发送到默认缓冲区,要想查看这些附加的缓冲区,可以使用 -b选项,以下是可以指定的缓冲区:
adb logcat [-b <buffer>]
radio:
查看包含在无线/电话相关的缓冲区消息
events:
查看事件相关的消息
main:
查看主缓冲区(默认缓冲区)
9)adb logcat -d(dump) -f(filename) + 手机路径:
把系统日志输出到手机或模拟器里的文件里保存