◆版权声明:本文出自胖喵~的博客,转载必须注明出处。

转载请注明出处:http://www.cnblogs.com/by-dream/p/4684123.html

前言


  上一篇将的是如果在eclipse中的Logcat进行Log的查看和过滤,很多的时候我们面临着这样的问题:

  如果你的app需要在室外才可以运行(例如使用地图软件中的导航),室外可能不方便去携带电脑,此时你又想保存log,那么你该如何去做呢?本节就来解决这个问题。

预备知识


  首先还是先了解一下上节没有提到的知识,我觉得还是比较重要的,就是log分类的几种级别(prority):

  v (verbose)
  d (debug)
  i  (information)
  w (warning)
  e (error)

  这几种日志的级别从上到下优先级越来越高,也就是说如果你过滤v,那么所以的日志都会出来,如果你过来e,那么只会出现e的日志。

  

命令行


  在shell命令中输入logcat后

  可以看到和eclipse中的logCat的效果是一样的,它会实时的将手机当中的log给刷出来,如果你不给它停止的命令,它就会一直的在这里刷啊刷啊。

  LogCat的命令具体使用的方法,可以参考文档:http://developer.android.com/intl/zh-cn/tools/help/logcat.html

  个人感觉里面有很多的用法对我没什么大用处,所以我就这里不介绍了,我只介绍一些大部分会用到的比较实用的功能:

  一、log重定向到pc

    这个其实没啥难度就是使用了windows命令行的 重定向符(“>” “>>”),这两者的区别就是一个是覆盖,一个是叠加。

    这样就将log重定向到了C盘下:

    ps.我用的是应用宝的tadb,你们只需把tadb改成adb运行即可

  二、log重定向到手机

    原理和上面差不多,只不过是需要是手机的shell命令下进行执行。

  将log保存在手机存储根目录下的tmp文件中了:

  三、按格式显示log

    这需要用到logcat中的 -v 选项

      用法为  logcat [-v <format>]

      brief — 显示priority/tag,产生日志的进程的id,和日志消息本身。它是日志默认的输出格式。
      process — 显示priority,产生日志的进程的id,和日志消息本身
      tag — 显示prority/tag,和消息本身
      thread — 显示priority,线程和日志消息本身
      raw — 只显示消息本身
      time — 显示产生日志的时间,prority/tag,产生日志的进程Id,和日志消息本身。
      long — 显示产生日志的时间,prority/tag,产生日志的进程Id,和日志消息本身。但是日志消息本身另其一行进行显示。每个日志之间空一行。

    prority 代表的就是 D、V、E、W等。看个例子吧:

   

  四、按tag过滤log

    按照tag过滤的格式是这样的: logcat [[tag:prority] [tag:prority] *:S]

    支持多个tag同时在一起过滤,其中 “*:S” 代表的是将过滤的tag内容显示出来。直接看例子吧:

 

工具介绍


  目前业内这块做的比较好的,非腾讯的GT莫属了,我们可以在应用宝下载最新版的GT:

  安装好之后,点击进入第四个选项 “日志”,打开logcat的开关,同时在菜单中打开 “GT日志自动保存”

      

  这样GT就会为你自动保存log,目录就在 “手机存储卡” - GT - Log 的文件夹下:

  当一个文件写满之后,就会再往另一个文件里写,文件名字就是数字依次类推。

  使用GT我们就可以实现脱机抓log了。

【Android测试】【第五节】LogCat——命令行的更多相关文章

  1. adb logcat 命令行用法

    作者 :万境绝尘  转载请著名出处 eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志; 1. 解析 adb logcat 的帮助信息 在命令行中输入  ...

  2. Android日志监听工具logcat命令详解(转)

    Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和使用. 在使用logcat之前,请确保手机的USB调试 ...

  3. Android NDK 开发中 adb logcat 命令的使用

    一.LogCat 存储在一个叫做 circular memory buffers 的缓冲中. 平时常用的都是通过eclipse 自带的 logcat 插件查看 logcat ,其实也可以通过命令来导出 ...

  4. [Android] 基于 Linux 命令行构建 Android 应用(四):命令行构建

    谷歌提供的 Android SDK 支持 Ant 自动构建[1],你可以使用调试和发行两种模式进行构建,两种模式不同之处在于调试模式 Ant 会调用内置的调试密钥,而发行模式调用你提供的私钥. 首先安 ...

  5. [Android] 基于 Linux 命令行构建 Android 应用(二):命令行管理项目

    创建 Android 项目 在命令行创建 Android 项目需要用到 android 工具(该工具由 Android SDK 提供,位于 <sdk>/tools/ 目录下.).它能自动生 ...

  6. python学习——读取染色体长度(五:从命令行输入染色体长度)

    # 传递命令行参数 # 导入sys模块 import sys print(sys.argv)   命令行操作 python argv.py 10 20 30 40 50 回车输出 ['argv.py' ...

  7. Android到您的计算机使用命令行屏幕捕获和出口

    声明:本博客为原创博客,未经同意.不得转载! 原文链接为http://blog.csdn.net/bettarwang/article/details/27819525 大多数人最经常使用的截屏方法可 ...

  8. JVM 第五篇:命令行 JVM 故障处理工具

    本文内容过于硬核,建议有 Java 相关经验人士阅读. 1. 引言 虽然我们前面介绍了各种图形化 JVM 故障处理工具,但是很多情况下,我们在处理问题的时候并没有图形化的操作环境可以使用,这时候,就需 ...

  9. Pytest 学习(二十五)- allure 命令行参数【转】

    先看看 allure 命令的帮助文档 cmd 敲 allure -h allure 命令的语法格式 allure [options] [command] [command options] optio ...

随机推荐

  1. Hadoop_10_12虚拟机01_虚拟机NAT方式联网【自己的亲测笔记】

      NAT方式 1.查看网络信息--ifconfig(同windows中的ipconfig相同) 主要关注的是第三行内容,分别是Ip地址.广播地址.子网掩码 2.安装完系统后需要配置三个地方--IP地 ...

  2. ZOJ2770 Burn the Linked Camp(差分约束系统)

    区间和一定要联系到前缀和. 这题,把前缀和看作点,从s0到sn: 对于每一个营地i的容量capi,有这么个关系si-si-1<=capi: 对于每一个区间的评估i,j,k,有sj-si-1> ...

  3. ural 1283. Dwarf

    1283. Dwarf Time limit: 1.0 secondMemory limit: 64 MB Venus dwarfs are rather unpleasant creatures: ...

  4. bzoj1032 [JSOI2007]祖码Zuma

    1032: [JSOI2007]祖码Zuma Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 672  Solved: 335[Submit][Stat ...

  5. HTML的快速写法:Emmet和Haml

    HTML代码写起来很费事,因为它的标签多. 一种解决方法是采用模板, 在别人写好的骨架内,填入自己的内容.还有一种就是我今天想要介绍的方法—-简写法. 常用的简写法,目前主要是Emmet和Haml两种 ...

  6. POJ 3411 Paid Roads(DFS)

    题目链接 点和边 都很少,确定一个界限,爆搜即可.判断点到达注意一下,如果之前已经到了,就不用回溯了,如果之前没到过,要回溯. #include <cstring> #include &l ...

  7. C#设计模式——抽象工厂模式(原文转自:http://blog.jobbole.com/78059/)

    一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法模式每个具体工厂类只完成单个实例的创 ...

  8. _jobdu_1384:二维数组中的查找

    /************************************************************************/ /* 题目描述: 在一个二维数组中,每一行都按照从 ...

  9. 关于javascript在作用域中的变量定义你所不知道的一些东西

    //先看一段代码 var a = 100; function test(){ alert(a); var a = 200; } test(); /* 结果:undifined 原因:js引擎在执行sc ...

  10. javascript 原型及继承

    一般继承方式如下 function people(n){ this.name =n; } function worker(name,num){ people.call(this, name); thi ...