在我们进行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字节。

 

   

posted on 2013-12-30 16:14  梅义  阅读(1502)  评论(0编辑  收藏  举报