public static async Task<StorageFile> AppendLogtoCacheAsync(CrashLog exception, string name = "crashLOG") { var cache = ApplicationData.Current.LocalCacheFolder; var log = await cache.CreateFileAsync(name, CreationCollisionOption.OpenIfExists); var sb = new StringBuilder(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + Environment.NewLine); var info = SystemInfoHelper.GetSystemInfo(); foreach (var i in info) { sb.Append(i + Environment.NewLine); } sb.Append("Error Code = " + exception.HResult.ToHexString() + Environment.NewLine); sb.Append("Exception = " + exception.Exception + Environment.NewLine); sb.Append("Message = " + exception.Message + Environment.NewLine); sb.Append("StackTrace = " + exception.StackTrace + Environment.NewLine); sb.Append("Source = " + exception.Source + Environment.NewLine); await FileIO.AppendTextAsync(log, sb.ToString()); return log; }
private async void App_UnhandledException(object sender, UnhandledExceptionEventArgs e) { var log = new CrashLog(e.Exception.ToString(), e.Exception.HResult, e.Exception.StackTrace, e.Exception.Source, e.Exception.Message); e.Handled = true; if (e.Exception.HResult == -2147418113 || e.Exception.HResult.ToHexString() == "0x80070057") { return; } if (settings.Preferences.EnableCrashReport) { await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.High, new DispatchedHandler(() => { Window.Current.Content = null; var f = new Frame(); f.Navigate(typeof(CrashReportPage), log); Window.Current.Content = f; })); } }
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); crash = e.Parameter as CrashLog; }