分时段自动保存adb的log文件

468 阅读1分钟

概述

在测试过程中,经常需要通过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文件的持续保存。

image.png

adb logcat -f /sdcard/log_speech.txt -r 1 -n 4

文件保存至安卓的sdcard后,可通过adb pull将log文件download至本地。