appium+python自动化53-adb logcat查看日志
前言
做app测试,遇到异常情况,查看日志是必不可少的,日志如何输出到手机sdcard和电脑的目录呢?这就需要用logcat输出日志了
以下操作是基于windows平台的操作:adb logcat | find
linux平台的操作可以把find改成grep: adb logcat | grep
windows上的dos里面是没grep指令的
logcat输出日志
1.把日志存入手机sdcard某个目录(前提是这个目录要是存在的)
adb logcat -f /sdcard/yoyo/yoyo.txt
备注:-f将日志输出到文件
上面这个指令在真机上(未root)是会报错的,提示没操作权限,在模拟器上可以执行
2.把日志存入电脑的某个目录,如d:\debug
adb logcat >d:debug\yoyo.txt
备注这里没-f, 不要问为什么
# 作者:上海-悠悠 QQ交流群:512200893
find过滤包名
1.如果直接用adb logcat抓日志的话,会把系统的一些其他无关紧要的都抓出来,如果只想抓取被测app的日志,那就根据包名过滤
adb logcat | find “com.sankuai.meituan” >d:\hello.txt
结束logcat
1.结束logcat抓包,可以用ctr+c快捷键结束, 这个是通过手工的快捷键操作完成
2.也可以先查询到logcat的pip,再kill掉
adb shell ps | findstr logcat
adb shell kill -9 [logcatpid]
注意:kill操作在模拟器上是可以的,真机上没权限
# 作者:上海-悠悠 QQ交流群:512200893
help其它功能
1.cmd输入adb logcat -help可以查看其它功能
adb logcat -help
C:\Users\admin>adb logcat -help Unrecognized Option h Usage: logcat [options] [filterspecs] **选项**: -- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志; -- "-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功; -- "-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功; -- "-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样; -- "-v"选项 : 设置日志的输出格式, 注意只能设置一项; -- "-c"选项 : 清空所有的日志缓存信息; -- "-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞; -- "-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞; -- "-g"选项 : 查看日志缓冲区信息; -- "-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解; -- "-B"选项 : 以二进制形式输出日志; **过滤项格式** : <tag>[:priority] , 标签:日志等级, 默认的日志过滤项是 " *:I " ; -- V : Verbose (明细); -- D : Debug (调试); -- I : Info (信息); -- W : Warn (警告); -- E : Error (错误); -- F : Fatal (严重错误); -- S : Silent(Super all output) (最高的优先级, 可能不会记载东西); '*' by itself means '*:D' and <tag> by itself means <tag>:V. If no '*' filterspec or -s on command line, all filter defaults to '*:V'. eg: '*:S <tag>' prints only <tag>, '<tag>:S' suppresses all <tag> log messages. If not specified on the command line, filterspec is set from ANDROID_LOG_TAGS. If not specified with -v on command line, format is set from ANDROID_PRINTF_LOG or defaults to "threadtime"