Android logcat:使用电子邮件从设备发送日志条目

脚本

我已经发布了一个testing版的Android应用程序给几个朋友。 现在,我想解决testing期间出现的一些错误。

我已经设置了第三方崩溃报告实用程序,所以我可以轻松处理应用程序崩溃。 但是,有一些错误的行为不会导致崩溃。 在这些情况下,我想检查应用程序日志,看看出了什么问题。

有没有办法通过电子邮件发送其logcat条目的应用程序?

澄清

  • 有许多日志应用程序( android日志收集器 , 日志查看器(logcat) ),可以检查和显示logcat条目。 但是,自Android 4.1以来,这些应用程序无法访问其他应用程序的日志。
  • 我不介意在设备上占用很多空间 – 这个function只适用于betatesting者。
  • 该解决scheme应该没有root或任何其他特殊的权限。

Solutions Collecting From Web of "Android logcat:使用电子邮件从设备发送日志条目"

在主要活动的onDestory中调用此方法。

  public void SendLoagcatMail(){ // save logcat in file File outputFile = new File(Environment.getExternalStorageDirectory(), "logcat.txt"); try { Runtime.getRuntime().exec( "logcat -f " + outputFile.getAbsolutePath()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //send file using email Intent emailIntent = new Intent(Intent.ACTION_SEND); // Set type to "email" emailIntent.setType("vnd.android.cursor.dir/email"); String to[] = {"yourmail@gmail.com"}; emailIntent .putExtra(Intent.EXTRA_EMAIL, to); // the attachment emailIntent .putExtra(Intent.EXTRA_STREAM, outputFile.getAbsolutePath()); // the mail subject emailIntent .putExtra(Intent.EXTRA_SUBJECT, "Subject"); startActivity(Intent.createChooser(emailIntent , "Send email...")); } 

这听起来像RemoteLogger正是你所需要的

https://github.com/sschendel/RemoteLogger

将debugginglogging捕获到用户可以通过电子邮件轻松发送给您的文件。 这是为了排除用户报告的不可重现的错误而创build的。 为了清楚logging被丢弃到发布的应用程序版本,以testing用户排除故障。 在最终的生产代码中删除。

库提供挂钩来启动,停止,发送和删除日志文件。