如何监控android adb logcat并执行grep?

Bin*_*hen 1 bash android adb

我有一个应用程序可以将一些日志打印到android日志系统中,它有一些我想要监控的关键字,我想要实现的是:

监控“adb logcat”输出,如果有新行包含关键字,则打印出新行。

这有点像 adb logcat | grep“命令”,但正如你所知,adb logcat 会阻塞在那里,所以我的 grep 看不到任何输入。使用简单的shell脚本是否可行?

Fem*_*emi 5

如果您查看http://developer.android.com/guide/developing/tools/adb.html中标题为“过滤日志输出”的部分,它描述了adb本机过滤功能。这可能对你有用。你可以在你的日志语句中指定一个特定的标签(基本上是你发送到的任何内容bash),然后只过滤这些标签。例如:

android.util.Log.v("filter1","<this is my log statement>");
Run Code Online (Sandbox Code Playgroud)

将是代码,然后你会做

adb logcat filter1:V
Run Code Online (Sandbox Code Playgroud)

过滤该输出。

编辑:您始终可以使用它来转储到文件,然后bash在该文件上运行。

  • 您可以运行 `adb logcat -c` 以在两次运行之间刷新日志。此外,您可以运行 `adb logcat -d` 将日志转储到屏幕并立即退出,这可能是您需要将其输入到 `bash` 中的内容。 (4认同)
  • 对。今天我发现了一个关于选项顺序的结论。也就是说,如果我使用这个 cmd:`adb logcat -s -v time MYTAG -d`,它不会转储并退出。正确的顺序是:`adb logcat -d -s -v time MYTAG`。 (2认同)