Пример #1
0
        private async void lapTimer_GeolocatorUnrecoverableError(LapTimer sender, GeolocationErrorEventArgs args)
        {
            string errorId = string.Empty;

            if (args.Exception != null)
            {
                var extraCrashData = new CrashExtraData(AppConstants.BUGSENSE_EXTRADATA_DEVICENAME, args.DeviceName);
                errorId = await BugSenseHandler.Instance.LogExceptionWithId(App.MobileService.CurrentUser, args.Exception, extraCrashData);
            }

            StopLapTimer(string.Format(args.DeviceName.Equals(AppConstants.DEFAULT_INTERNALGPS_NAME, StringComparison.OrdinalIgnoreCase)
                                        ? AppResources.Text_Error_UnableToCommunicateWithInternalGpsDevice
                                        : AppResources.Text_Error_UnableToCommunicateWithExternalGpsDevice,
                                       errorId));
        }
Пример #2
0
 public void LogError(Exception e, string comment, string commentKey = null)
 {
     if (e == null) return;
     BugSenseHandler.Instance.ClearCrashExtraData();
     if (e.Data != null && e.Data.Contains("DetailedStack"))
     {
         var extraData = new CrashExtraData() { Key = "DetailedStack", Value = (string)e.Data["DetailedStack"] };
         BugSenseHandler.Instance.AddCrashExtraData(extraData);
     }
     if (!string.IsNullOrEmpty(comment))
     {
         if (string.IsNullOrEmpty(commentKey))
             commentKey = "Description";
         var extraData = new CrashExtraData() { Key = commentKey, Value = comment };
         BugSenseHandler.Instance.AddCrashExtraData(extraData);
     }
     var wex = e as WebExceptionEx;
     if (wex != null)
         BugSenseHandler.Instance.SendExceptionAsync(wex, "RequestedURL", wex.URL);
     else
         BugSenseHandler.Instance.SendExceptionAsync(e);
     FlurryWP8SDK.Api.LogError(comment, e);
 }
Пример #3
0
        /// <summary>
        /// The log method.
        /// </summary>
        /// <param name="ex">
        /// The exception got.
        /// </param>
        /// <param name="crashExtraData">
        /// The crash Extra Data.
        /// </param>
        /// <param name="message">
        /// The message.
        /// </param>
        /// <param name="aditionaMessage">
        /// The aditiona Message.
        /// </param>
        /// <returns>
        /// The <see cref="Task"/> object.
        /// </returns>
        public async Task LogAsync(Exception ex, Dictionary<string, string> crashExtraData = null, string message = "", string aditionaMessage = "")
        {
            try
            {
                Debug.WriteLine(ex.ToString());
                var messageToSend = message ?? string.Empty;
                var additionalMessageToSend = aditionaMessage ?? string.Empty;
                if (crashExtraData != null)
                {
                    foreach (var data in crashExtraData)
                    {
                        var extraData = new CrashExtraData(data.Key, data.Value);
                        BugSenseHandler.Instance.AddCrashExtraData(extraData);
                    }
                }

                var logResult = await BugSenseHandler.Instance.LogExceptionAsync(ex, messageToSend, additionalMessageToSend);
                Debug.WriteLine("Bug reported:");
                Debug.WriteLine(string.Concat("LogType: ", logResult.LogType));
                Debug.WriteLine(string.Concat("Description: ", logResult.Description));
                Debug.WriteLine(string.Concat("ExceptionError: ", logResult.ExceptionError));
                Debug.WriteLine(string.Concat("ResultState: ", logResult.ResultState));
 
            }
            catch (Exception exception)
            {
                // Bug sense can throw an exception
                // TODO test
                Debug.WriteLine(exception.ToString());
            }
        }
Пример #4
0
 /// <summary>
 /// The throw exception with data async.
 /// </summary>
 /// <returns>
 /// The <see cref="Task"/>.
 /// </returns>
 /// <exception cref="NullReferenceException">
 /// The exception.</exception>
 private async Task ThrowExceptionWithDataAsync()
 {
     Exception exception = null;
     try
     {
         throw new NullReferenceException(string.Concat("ThrowExceptionWithDataAsync: ", DateTime.Now));
     }
     catch (Exception ex)
     {
         exception = ex;
     }
     if (exception != null)
     {
         var data = new CrashExtraData();
         var dic = new Dictionary<string, string>
         {
             { "mykey", "mydata" }
         };
         await _logManager.LogAsync(exception, crashExtraData: dic, aditionaMessage: DateTime.Now.ToString());
     }
 }