我们在做app测试的过程中,肯定会遇到需要抓取日志问题,这几天安静也遇到了此问题,后台日志生成的太多了,保存本地了吧,设备多没有这么USB,通过wifi连接又太麻烦,你说这怎么是好?不要着急,我们往下看

adb logcat介绍

adb 是android一个操作命令,前面有讲过----常用的adb命令

logcat 是android一个打印日志的工具,当然也可以通过命令行进行操作。最主要的是不仅仅可以PC端使用,还可以在app内部进行使用

logcat原理

格式

[adb] logcat [<option>] … [<filter – spec>] …

PC端使用:

adb logcat

shell模式下使用:

logcat

logcat 命令行参数

参数 描述
-b 加载一个可使用的日志缓冲区供查看,比如event和radio。默认值是main
-c 清除缓冲区中的全部日志并退出(清除完后可以使用-g查看缓冲区)
-d 将缓冲区的log转存到屏幕中然后退出
-f  将log输出到指定的文件中<文件名>.默认为标准输出(stdout)
-g 打印日志缓冲区的大小并退出
-n  设置日志的最大数目<count>,默认值是4,需要和-r选项一起使用
-r  没<kbytes>时输出日志,默认值是16,需要和-f选项一起使用
-s 设置过滤器
-v  设置输出格式的日志消息。默认是短暂的格式。支持的格式列表

PC端使用

pc端使用肯定是结合这adb进行使用

# 查看日志
adb logcat # 过滤关键字日志 win用find mac 用grep
adb logcat | find "xxxxx" # 保存日志
adb logcat >路径\名称.txt # 保存过滤日志
adb logcat >find "xxxx" >路径\名称.txt # 清空缓存日志
adb logcat -c # 打印缓冲区大小并退出
adb logcat -g

接下来就是重点了,也是这个地方帮我解决了问题。

app端

在app端使用的时候必须要通过adb shell 进入到app内中,进入adb shell 其实就是android的终端(也就是liunx系统中,就可以敲命令了)

我们通过几个需求来了解app端的log使用方法:

需求1:实时过滤“XXX”日志并保存下来

PC端的方法上面已经写过了可以参考下,app端的可以这样写

# app端保存日志
logcat -s 标签名 -f /app内存路径/名称.txt # 通过保存在app中,然后再通过adb pull 提取出来

我们知道在PC端中-s是过滤关键字,但是这个地方不是,这个地方是过滤的日志标签名(就是打印日志前面写的标签类型)

需求2:不连接usb实时保存日志

可能会有人想通过wifi连接,但是如果我们的app不在办公室测试的时候怎么通过wifi连接呢?

# 不一直连接usb实时抓取日志

logcat -s 标签名 -f /路径/名称.txt &

# & 表示后台运行

通过这个命令,只要手机不关机,命令就会一直进行中,这样我们不用实时连接USB也能实时抓取日志了

注意:app的命令必须要进入到adb shell 的状态下

就是这个命令帮助了安静解决了领导的要求, 监控的设备多了,还不用连接USB。只需要2行命令,多么简单,快去尝试下吧~~~

appium---adb logcat 命令详解的更多相关文章

  1. adb shell 命令详解,android, adb logcat

    http://www.miui.com/article-275-1.html http://noobjava.iteye.com/blog/1914348 adb shell 命令详解,android ...

  2. Android的logcat命令详解

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  3. adb shell 命令详解,android

    http://www.miui.com/article-275-1.html http://noobjava.iteye.com/blog/1914348 adb shell 命令详解,android ...

  4. adb调试命令详解-2016.02.01

    adb(Android Debug Bridge),调试桥可以让设备的调试监测过程在远端进行,而不必在运行实际运行应用的设备上,方便调试的输出. 1 命令详解 a 查看帮助信息         adb ...

  5. logcat命令详解【二】

    eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志; 1. 解析 adb logcat 的帮助信息 在命令行中输入 adb logcat --help  ...

  6. adb shell 命令详解(转)

    adb介绍 SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为(Android Debug Bridge就是调试桥的作用.通过adb我们可以在Eclipse中方面 ...

  7. adb shell 命令详解

    adb介绍 SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为(Android Debug Bridge就是调试桥的作用.通过adb我们可以在Eclipse中方面 ...

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

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

  9. Android logcat命令详解

    一.logcat命令介绍 1.android log系统 2.logcat介绍 logcat是android中的一个命令行工具,可以用于得到程序的log信息 log类是一个日志类,可以在代码中使用lo ...

  10. logcat命令详解【一】

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

随机推荐

  1. 使用MailKit发送带有内嵌图片的邮件且图片不显示成附件

    使用MailKit发送带有内嵌图片的邮件且图片不显示成附件 参考文章:MailKit---发送邮件 注意 在邮件客户端中是否显示内嵌图片为附件依据不同邮件有所不同,暂经测试Outlook和qq不显示为 ...

  2. 一文解读HTTP2 (转)

    作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识,希望能给读者带来一些收获,如有不对之处 ...

  3. 037.[转] springboot 配置多个数据源

    1.在application.properties文件 配置两个数据源 #默认使用 tomcat-jdbc spring.datasource.type=org.apache.tomcat.jdbc. ...

  4. [20191101]完善vim的bccalc插件8.txt

    [20191101]完善vim的bccalc插件8.txt --//今天移植bccalc插件到linux,发现一些问题.我自己已经在windows下使用一段时间,从来没有在linux下测试.看来很少人 ...

  5. python模块下载备份

    https://pypi.org/ https://pypi.doubanio.com/simple/

  6. cookie和session及token的区别联系

    1 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应,  尤其是我 ...

  7. 算法设计与分析 1.1 Joyvan的矩阵

    ★题目描述 Joyvan有一个大小为n * m的矩阵,现在他要对矩阵进行q次操作,操作分为如下三种: 0 x y:交换矩阵的x.y两行. 1 x y:交换矩阵的x.y两列. 2 x y:求当前矩阵第x ...

  8. acwing 167. 木棒

    乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位. 然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度. 请你设计一个程序,帮助乔 ...

  9. JavaScript中随机打乱一个数组

    JavaScript中随机打乱一个数组 function shuffle(arr) { let i = arr.length; while (i) { let j = Math.floor(Math. ...

  10. <Array> 54 (高频+hard )45

    55. Jump Game 希望知道能否到达末尾,也就是说我们只对最远能到达的位置感兴趣,所以维护一个变量 reach,表示最远能到达的位置,初始化为0.遍历数组中每一个数字,如果当前坐标大于 rea ...