我有一个WinForms应用程序,并添加了AppCenter崩溃跟踪支持。我还添加了崩溃代表Crashes.ShouldProcessErrorReport,Crashes.SendingErrorReport,Crashes.SentErrorReport,Crashes.FailedToSendErrorReport。并将它们记录到文本文件中以确保它们被调用。出于测试目的,我抛出StackOverflowException
导致了未处理的异常。
在Visual Studio中调试程序时,一切正常,将日志写入文本文件,并将崩溃发送到AppCenter服务器。直接运行调试时,不会调用可执行委托,也不会发送崩溃信息。我已经检查并启用了崩溃API。
Crashes.ShouldProcessErrorReport = (ErrorReport report) =>
{
DataLogger.Error("AppCenter process error");
return true; // return true if the crash report should be processed, otherwise false.
};
Crashes.SendingErrorReport += (object sender, SendingErrorReportEventArgs e) =>
{
// Your code, e.g. to present a custom UI.
string s = e.Report.Exception.StackTrace;
Console.WriteLine(s);
DataLogger.Error("AppCenter sending ", e.Report.Exception);
};
Crashes.SentErrorReport += (object sender, SentErrorReportEventArgs e) => {
// Your code, e.g. to hide a custom UI.
DataLogger.Error("Appcenter successfully sent a crash");
};
Crashes.FailedToSendErrorReport += (object sender, FailedToSendErrorReportEventArgs e) => {
// Your code goes here.
string s = e.Exception.ToString();
Console.WriteLine(s);
DataLogger.Error("AppCenter failed to send " + s);
};
AppCenter.Start("SECRET_KEY", typeof(Analytics), typeof(Crashes));
bool isEnabled = Crashes.IsEnabledAsync().Result;
DataLogger.Error("AppCeneter enabled " + isEnabled);
Application.Run(new MyForm());
我有一个WinForms应用程序,并添加了AppCenter崩溃跟踪支持。我还添加了Crashes委托Crashes.ShouldProcessErrorReport,Crashes.SendingErrorReport,...
请确保您已阅读有关WinForms handles crashes differently的文档。除非您使用下面的代码行禁用了默认的WinForms行为,否则它不会真正崩溃。