You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中用logcat收集60秒时长的设备日志

PowerShell下定时采集60秒logcat日志的方案

因为adb logcat本身没有内置的超时终止参数,所以需要借助PowerShell的进程/作业控制功能来实现定时停止采集,以下是两种可行的方法:

方法一:通过进程控制实现

先启动logcat进程并输出原始日志,等待60秒后终止进程,再筛选目标标签内容:

# 启动adb logcat进程,将原始日志输出到临时文件
$logProc = Start-Process -FilePath "adb" -ArgumentList "logcat -v tag" -RedirectStandardOutput "C:\Temp\raw_log.txt" -NoNewWindow -PassThru

# 等待60秒
Start-Sleep -Seconds 60

# 终止logcat进程
Stop-Process -Id $logProc.Id -Force

# 从原始日志中筛选TEST标签并保存到目标文件
Select-String -Path "C:\Temp\raw_log.txt" -Pattern "TEST" > "C:\Temp\test.txt"

# 可选:删除临时原始日志文件
Remove-Item "C:\Temp\raw_log.txt" -Force

方法二:通过后台作业实时筛选

直接在后台作业中完成日志采集与筛选,定时停止作业即可:

# 检查目标目录是否存在,不存在则创建
if (-not (Test-Path "C:\Temp")) {
    New-Item -ItemType Directory -Path "C:\Temp" | Out-Null
}

# 启动后台作业执行采集+筛选
$logJob = Start-Job -ScriptBlock {
    adb logcat -v tag | Select-String "TEST" > "C:\Temp\test.txt"
}

# 等待60秒
Start-Sleep -Seconds 60

# 停止并清理后台作业
Stop-Job -Job $logJob
Remove-Job -Job $logJob

注意事项

  • 确保adb命令已添加到系统环境变量PATH中,或者在命令中使用adb的完整路径(比如C:\platform-tools\adb.exe)
  • 路径写法要正确:原命令中的C:Temp会被识别为当前目录下的Temp文件夹,建议改为绝对路径C:\Temp
  • 如果需要实时查看logcat输出,可以去掉方法一中的-NoNewWindow参数

内容的提问来源于stack exchange,提问作者Sarah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 01:38:15