如何让 logcat 崩溃

问题描述

这里有一个新手 logcat 问题,我相信这是众所周知的,但找不到答案。对不起。

我想为我的应用程序 MyApp用户使用 logcat 向我发送崩溃报告,显然我不知道它们会出现在哪里。我只想为我的应用打印警告及以上内容

我阅读了 the documentation 并明白,要仅为包打印 logcat,我应该执行以下操作:

 logcat -d -v time MyApp:W *:S

但是这不起作用:这仅适用于标签,不适用于应用名称

我读到有人提出类似的建议

logcat -d -v time *:W | grep MyApp

但这也不起作用:错误消息,正是我感兴趣的,不会在所有行中打印 MyApp 名称

我也试过

logcat -d -v time --pid=$(pidof -s MyApp) *:W 

但这也不起作用,因为应用程序已经崩溃,所以它没有运行,它会向我发送仍在运行的 MyApp PID 的日志。

我最终做的是只打印所有内容的最后 20 分钟:

long timesinceepoch = System.currentTimeMillis()/1000 - 1200;
Process process = Runtime.getRuntime().exec("logcat -d -v time -t "+timesinceepoch+".0 *:W");

当然,我仍然会收到很多垃圾和大文件

那么如何将 MyApp 标记添加ALL MyApp 的 logcat 日志中?

编辑:实际上,在 Android Studio 中,MyApp 出现在 logcat 中,并且有一个选项可以显示单个应用的 logcat。 Android Studio logcat 和 adb logcat 不是一样的吗??

解决方法

这完全没有必要,因为当应用调用 logcat 时,它只记录调用应用日志。参见this(感谢@jake-lee!)。