Android每次运行时都会在服务器/数据库上保存日志以获取崩溃报告?

时间:2018-08-09 13:08:01

标签: java android

我目前正在开发一个android应用。我注意到一个非常罕见的错误,导致我的应用程序崩溃。不幸的是,我的智能手机在发生时从未连接到PC。因此,有一种方法可以将所有日志自动保存到服务器/数据库(尤其是抛出的运行时异常)。错误数据应该在我的应用程序的每次启动时都被覆盖,因此它仅包含上次运行的日志...我该如何实现?

谢谢 Mahak Singhvi

1 个答案:

答案 0 :(得分:0)

Logcat

您可以使用Logcat。这是一个命令行工具,用于转储系统消息,堆栈跟踪以及您使用Log类从应用程序编写的消息的日志。

您可以将logcat作为adb命令运行(或直接在shell提示符下运行)。

adb logcat

Logcat也可以直接写入文件:

public static void backupLogcatToFile(Context context) {    
  String fileName = "logcat_" + System.currentTimeMillis() + ".txt";
  File outputFile = new File(context.getExternalCacheDir(), fileName);
  Process process = Runtime.getRuntime().exec("logcat -f " + outputFile.getAbsolutePath());
}

开源项目

项目CatSaver是可自动保存logcat的Android服务。它提供了一个HTTP服务器,使您无需adb连接到设备即可保存和下载logcat数据。

如果在应用发布后需要收集崩溃日志,则可以使用ACRA