adb 获取日志命令

adb logcat 获取的是日志buffer中从头到尾的日志,并且最新的日志会持续写入。历史日志多少取决于缓冲区大小,并且我们可以通过参数过滤掉无用的日志。可以使用xlog框架将历史日志保存(可以研究下源码)。

日志打印不了
插拔重启
日志缓冲区修改最大
usb驱动查看
adb重启,端口占用

adb bugreport // 将日志打包成zip到当前电脑目录

adb logcat > log. txt 右箭头是保存到文件

adb logcat抓取日志: adb logcat --help
用法: logcat [options] [filterspecs]
options包括:
-s 过滤TAG
-f 输出日志到到手机的sd卡
-v 设置日志消息的输出格式
 brief — 显示优先级/标记和原始进程的PID (默认格式)
 process — 仅显示进程PID
 tag — 仅显示优先级/标记
 thread — 显示优先级/标记,消息线程的PID和TID
 raw — 显示原始的日志信息,没有其他的元数据字段
 time — 显示日期,调用时间,优先级/标记,PID
 threadtime — 显示日期,调用时间,优先级/标记以及发出消息的线程的PID和TID
 long — 显示所有的元数据字段并且用空行分隔消息内容
-c 清除缓存区的日志,Clear (flush) the entire log and exit
-b 查看日志消息的缓冲区, 包括’main’,‘system’, ‘radio’, ‘events’, ‘crash’, ‘default’ or ‘all’
–pid= 打印指定进程的日志
-B 输出log到二进制中
-r设置缓冲区大小
-g得到缓冲区大小
-d得到所有日志并退出
-n设置环形缓冲区的最大数目,一般是4

filterspecs格式:
[:priority]:不指定的话,默认就是所有级别的所有日志
日志的优先级,从低到高:
V — Verbose (lowest priority, 冗长的) 对应于Log.v(tag)系列函数
D — Debug (调试用) 对应于Log.d()系列函数
I — Info(线上用) 对应于Log.i()系列函数
W — Warning(警告日志) 对应于Log.w()系列函数
E — Error (发生错误) 对应于Log.e()系列函数
F — Fatal (What a Terrible Failure,引起程序崩溃)对应于Log.wtf()系列函数
S — Silent (highest priority, on which nothing is ever printed)

用法举例:
adb logcat -s ActivityManager [打印TAG为ActivityManager的日志]
adb logcat -v time -s ActivityManager [日志的打印格式为time]
adb logcat -c 或adb locat -c all [清除缓存区所有类型的日志]
adb logcat -c main crash [清除缓存区main和crash类型的日志]
adb logcat -b radio [查看包含无线装置/电话相关消息的缓冲区日志]
adb logcat --pid=“2661” [打印进程号是2661的日志]
adb logcat -f /sdcard/log.txt [保存日志到手机的log.txt文件]
adb logcat -s ActivityManager:I WindowManager:W [输出TAG为"ActivityManager"并且优先级大于等于"Info"和TAG为"WindowManager"并且优先级大于等于"Warn"的日志]

一般日志路径
1、安卓全日志获取,不同公司可能自己定义存储在不同路径下
adb pull /data/log/android_logs
/data/anr ANR日志
/data/tombstones 崩溃日志
/data/log/core 内核日志
/data/logcatch
开机log
adb shell dmesg > dmesg.txt

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐