【问题标题】:Create log file for Android app为 Android 应用程序创建日志文件
【发布时间】:2012-12-13 12:30:24
【问题描述】:

我想为我的 Android 应用创建一个日志文件。我需要这个来调试应用程序的随机崩溃。

我想创建一个函数,如果有未处理的异常,它总是会被调用。在日志中我想要异常消息。是否有任何事件类型机制会在 Android 中的未处理异常上被调用?

【问题讨论】:

  • 为什么logcat输出不够?
  • @Henry 该应用程序将安装在设备上,我想通过将日志保存到 SD 卡来解决它崩溃的原因
  • 当设备通过 USB 连接到 PC 时,您可以获得此信息。即使您只是在崩溃后不久连接设备也能正常工作。
  • @Henry 我想你不知道日志文件的重要性。详情请上网搜索

标签: android exception logging


【解决方案1】:

尝试使用安卓Android Acra

真是好东西请试试这个。

【讨论】:

  • 谢谢,acra 很棒,但我想写我的代码。你能帮忙吗?
【解决方案2】:

你可以自己写日志猫,

当您的应用程序安装在真正的 android 设备上且未连接到 Eclipse 以获取调试详细信息时..

请查看教程:Read & Store Log-cat Programmatically in Android

您也可以查看thisstack-overflow 页面,我已经发布了解决方案代码片段和相关的有用信息。

【讨论】:

    【解决方案3】:

    你可以使用UncaughtExceptionHandler,如下图:

    public class UncaughtExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler {
        String Tag;
        Context myContext;
        public UncaughtExceptionHandler(Context context, String TAG) {
            Tag = TAG;
            myContext = context;
        }  
    
        public void uncaughtException(Thread thread, Throwable exception) {
            StringWriter sw = new StringWriter();
            exception.printStackTrace(new PrintWriter(sw));
            Logger.appendErrorLog(sw.toString(), Tag);
            Intent intent = new Intent(myContext, ForceClose.class);
            intent.putExtra(BugReportActivity.STACKTRACE, sw.toString());
            myContext.startActivity(intent);
            Process.killProcess(Process.myPid());
            System.exit(10);
        }
    }
    

    在第一个活动的onCreate()方法中调用这个类:

    Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(getApplicationContext(),"FirstActivity"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多