Windows Phone 7 记录程序崩溃信息,email crash exception stacktrace

     调试的时候找到程序的崩溃点,想必大家很清楚了,可以在App.cs中的RootFrame_NavigationFailed和Application_UnhandledException方法中捕捉到程序导航出错和崩溃信息,这时直接输出到Debug控制台就可以看到了。

      但是程序的Bug往往不是开发人员测试出来的,当测试人员测出崩溃信息时,有时我们仅通过测试人员的描述很难定位到崩溃点,而现在支持Windows Phone 7的日志又无法记录崩溃时的堆栈信息。这时就要能出个能让测试人员提交崩溃信息的功能。这里我选择了用Email提交。

在App.cs文件中加入这两个方法

   private void ShowExceptionError(string title,string msg)
        {
                ExceptionErrorUpload(title, msg);
 
            //这里要调用MessageBox才能保证调用邮箱服务成功
                System.Windows.MessageBox.Show(msg, title, MessageBoxButton.OK);     
        }
        private static  void ExceptionErrorUpload(string title,string msg)
        {
            EmailComposeTask task = new EmailComposeTask();
           //这个是要发送到的邮箱
            task.To = "xxxxx@xxx.com";
          //邮件标题
            task.Subject = title;
            task.Body = msg;
            task.Show();

        }

然后直接在RootFrame_NavigationFailed和Application_UnhandledException方法中调用就可以了。

 private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
        {
           ShowExceptionError(e.ExceptionObject.Message, e.ExceptionObject.StackTrace);
}
  private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
        {
 ShowExceptionError(e.Exception.Message, e.Exception.StackTrace);
}

这样就可以轻松的把崩溃信息发送到指定的邮箱。

在这里再推荐一个工具友盟,友盟提供的服务很多,程序崩溃信息也可以通过它来记录,当然还有其他好多的统计功能,大家自己去看看吧。

    

posted @ 2012-05-18 10:41  月食之后  阅读(475)  评论(0编辑  收藏  举报