目录
日志的抓取与清除
- 抓取:adb logcat
- 清除:adb logcat -c
adb logcat -c && adb logcat 清除之前的日志数据后在打印日志,可以减少日志数据的冗余,每次抓取日志前将之前的日志数据清除
日志过滤
格式:adb logcat <tag>[:priority]
tag表示标签,priority为输出级别,如果要根据级别查看时tag一定要给,如果没有指定,tag必须用*代替
级别过滤
adb logcat *:E (不区分大小写)
- V —— Verbose 明细(最低优先级)
- D —— Debug 调试
- I —— Info 信息
- W —— Warn 警告
- E —— Error 错误
- F —— Fatal 严重错误
- S —— Silent 无记载的(最高优先级,没有内容被记载)
标签过滤
指定标签打印,后面一定是*:S结尾
adb logcat tagname:*:s
查看手机日志的tag:adb logcat -v tag 输出格式:<priority>/<tag>: <message>
日志打印格式
- 按时间打印:-v time
- 按标签打印: -v tag
- 按照进程与线程ID打印:-v thread (显示I、D、E等级的日志)
使用管道过滤和重定向
管道过滤
Linux:使用grep
- adb logcat | grep 过滤内容
- adb logcat | grep -i 过滤内容 # -i表示忽略大小写
windows不能使用grep关键字,用findstr
- adb logcat | findstr 过滤内容
findstr更多用法可查看网上资料
重定向
将输出的日志内容重定向到文件中
adb logcat > D:/log.txt
PS:
查看某进程使用内存情况:adb shell dumpsys meminfo 进程名
查看service列表:adb shell service list
查看进程列表:adb shell ps
日志乱码
日志乱码,写入错误:
1、查看当前语言编码:chcp
- ANSI:936
- utf-8:65001
2、修改编码: CHCP 65001
抓取指定app应用日志
1、创建一个获取指定app进程的.bat文件,如getpid.bat
@echo off adb shell ps | grep 包名
2、创建一个获取日志的文件,如getlog.bat,可以将日志内容重定向到指定文件中,具体的要抓取的数据的表达式可以自己去调整
@echo off for /f "tokens=2 delims= " %%i in ('getpid.bat') do adb logcat | find "%%i" > C:/Users/Desktop/app_log.txt pause
3、将这两个文件放置在adb.exe同文件目录下
4、执行getlog.bat文件就可以得到想要的日志文件