多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
做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)是会报错的,提示没操作权限,在模拟器上可以执行 ![](https://images2018.cnblogs.com/blog/1070438/201805/1070438-20180528165354573-558179681.png) 2.把日志存入电脑的某个目录,如d:\\debug > adb logcat >d:debug\\yoyo.txt ![](https://images2018.cnblogs.com/blog/1070438/201805/1070438-20180528165425329-1671026471.png) **备注这里没-f, 不要问为什么** # find过滤包名 1.如果直接用adb logcat抓日志的话,会把系统的一些其他无关紧要的都抓出来,如果只想抓取被测app的日志,那就根据包名过滤 > adb logcat | find "com.sankuai.meituan" >d:\\hello.txt ![](https://images2018.cnblogs.com/blog/1070438/201805/1070438-20180528165438628-165986255.png) # 结束logcat 1.结束logcat抓包,可以用ctr+c快捷键结束, 这个是通过手工的快捷键操作完成 2.也可以先查询到logcat的pip,再kill掉 > adb shell ps | findstr logcat > adb shell kill -9 \[logcatpid\] **注意:kill操作在模拟器上是可以的,真机上没权限** ![](https://images2018.cnblogs.com/blog/1070438/201805/1070438-20180528175651109-984558419.png) # 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" ~~~