手机重启后能否获取logcat日志?

问题描述 投票:0回答:5

我正在测试一个具有长时间运行服务的 Android 应用程序。我正在使用 Eclipse,并将 USB 线连接到我旁边的电话。由于它是一项长期持续的服务,因此我在它运行时做了一些其他工作,并每隔一段时间检查一次 logcat 日志,以确保一切按预期进行。

几分钟前,我注意到手机重新启动。我认为它之前已经这样做过,因为它可以解释一些奇怪的应用程序行为。我很快切换到 Eclipse 看看发生了什么,发现 logcat 日志(看起来)在重新启动期间被清除了。因此,没有记录表明我的应用程序是否崩溃(并导致手机停机?!),或者是否存在其他问题导致手机和我的应用程序停机。

我能查出到底发生了什么事吗?这是一款开发手机,所以我不知道它是否经常自行重新启动/崩溃,或者仅在我的应用程序运行时重新启动/崩溃。这是运行固件版本 2.1-update1 的 Motorola Droid。

感谢您的帮助。

android reboot logcat
5个回答
17
投票

我不知道有什么方法可以做到这一点。但是,您可以使用

adb
adb logcat -v time > logcat.txt
中启动 logcat,然后再次运行您的应用程序。如果第二次崩溃,那么你可以在你的机器上查看
logcat.txt
中的输出。


16
投票

您可以使用

adb bugreport
,它应该包含一些有关虚假重启的信息 - 例如,内核恐慌、最后的 logcat 条目等。

但请注意:该工具会输出大量信息,因此您必须深入挖掘才能找到您需要的信息。


0
投票

我也遇到过这个问题。应该可以编写一个应用程序,将 logcat 输出连续保存到 SD 卡上的文件中。市场上有一些应用程序可以显示 logcat 输出,因此我知道可以从应用程序内访问它。

@djv,我无法在手机的 root 或 /data 中找到 /log 目录。


0
投票

我认为在主要的 Android 更新之一期间,崩溃日志已从

/proc/last_kmsg
移至
/sys/fs/pstore/console-ramoops-0


0
投票

在较新的 Android 版本上,您可以尝试以下命令

adb logcat -b all -L

这应该输出“/sys/fs/pstore/console-ramoops-0”的内容。 注意:如果您的操作系统仍使用 /proc/last_kmsg 作为上次重新启动日志,则此命令不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.