在我们进行Android程序开发的时候,打印日志对我们调试程序定位问题是非常重要的。比如在我们的eclipse开发环境中,通过adroid 开发插件自带的Logcat窗口可以很方便的查看输出日志。
这个比较简单,不是本文讲解的重点。
不依赖eclipse环境,其实我们可以通过命令adb logcat来抓取日志.前提是你安装了adb工具包,android sdk中自带这个工具包adb.exe。
在这里假设你安装了工具包并且设置了环境变量(在Path中加入adb.exe对应的目录)。
让我们看看adb logcat的帮助信息 敲入adb logcat --help。
adb logcat -s 这个主要是用来过滤日志用的.<tag>[:priority]
比如
android logcat -s WORKFLOW 显示所有TAG为WORKFLOW的日志,日志级别包括V,D,I,W,E,F。
android logcat -s WORKFLOW:I 显示所有TAG为WORKFLOW 日志级别为I以上的的日志。
android logcat -s *:W 显示所有日志级别为W以上的日志。
如果我们想把日志输出到文件而不是控制台,很简单。
android logcat > logs.txt “>" 表示输出重定向,直接写到文件即可。
注意按照帮助信息中的方法 android logcat -f logs.txt 总是会报错,文件只读 不能写入.
adb logcat -v 控制日志输出的格式化问题
可取值范围 brief process tag thread raw time long,在不指定-v参数的情况下 默认是brief。
你可以试试adb logcat -v time ,adb logcat -v tag输出日志的区别,就知道他们的具体含义了。
adb logcat -b 设置不同的日志缓冲区的
可取值范围 main radio events 在不指定-b的情况下,默认是main。
大家可以尝试一下 adb logcat -b radio 以及 adb logcat -b events两个命令,看看输出的日志有和区别
最后: 在实际使用过程中发现Logcat输出的最长文本是有长度限制的,当超过一定长度时会被截取,只显示了一部分的内容,经过调查发现,android的Logcat源码对Logcat对应的文本缓冲区为1024字节,如果你的输入内容过长,请先截断一下,将输出语句切割成几条输出语句,保证每条输出语句的长度不超过1024字节。