概述
在测试过程中,经常需要通过adb logcat命令去抓取安卓的log来分析和定位问题。但是如果抓取的log文件容量很大,通过工具加载和解析文件往往耗时会很长。 本文主要总结如何让系统自动的保存adb的log文件,可根据设定时间间隔,持续保存log文件,如此便可将单个log文件缩小,但是log文件的数量可以增多,方便解析某时间段的日志。
解决方案
编写shell脚本并运行脚本: adb_log_save_section.sh
#!/bin/bash
function getTimeStamp() {
date "+%Y%m%d_%H%M%S"
}
echo "输入设定时间段来分段保存log日志:"
read time
function logLog() {
timestamp=$(getTimeStamp)
echo "Start: "$timestamp
adb logcat -c
adb logcat -v time> log_data/20221024/$timestamp.txt & { sleep $(($time * 60)); kill $! &}
timestamp=$(getTimeStamp)
echo "end:"$timestamp
}
while [ 1 ]; do
logLog
done
其他
通过adb logcat自带参数 '-r' 和 '-n',我们也可以简单实现log文件的持续保存。
adb logcat -f /sdcard/log_speech.txt -r 1 -n 4
文件保存至安卓的sdcard后,可通过adb pull将log文件download至本地。