0

我使用以下代码读取 Android 中的 logcat。

Process process = Runtime.getRuntime().exec("logcat -v time");

由于 logcat 文件很大,我必须过滤 logcat 消息。所以我使用下面的代码来过滤logcat。

Process process = Runtime.getRuntime().exec("logcat -v time | grep -v -E \"(libloc|RPC)\"");

其中 (libloc|RPC) 是标签。

但是 Grep 代码在 Android 中不起作用。谁能帮我解决这个问题?

4

2 回答 2

1

如果 grep 不起作用(我直接在 logcat UI 上使用 regexp),那么您可以逐行制作自己的 grep 阅读。

Process process = Runtime.getRuntime().exec("logcat -v time");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));

while ((line = bufferedReader.readLine()) != null) {
  if(line.matches("^.*(libloc|RPC).*$")) {
     //code
  }
}

参考

于 2013-07-03T13:51:47.233 回答
-1

我得到了答案。我必须使用文件名才能使用 grep 命令。

Runtime.getRuntime().exec("logcat -v time -f "+logCatFile.getAbsolutePath()+ " libloc:S RPC:S")
于 2013-07-04T04:07:09.277 回答