Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过.NET桌面应用程序发送错误日志_C#_Logging_Error Logging - Fatal编程技术网

C# 通过.NET桌面应用程序发送错误日志

C# 通过.NET桌面应用程序发送错误日志,c#,logging,error-logging,C#,Logging,Error Logging,最近,我们的客户遇到了意外的崩溃。我们已经在他们的本地机器上记录错误。当应用程序崩溃或发生意外行为时,是否有一种机制使他们能够以某种方式“发送错误日志” 换句话说,我如何知道应用程序已冻结、挂起或崩溃,以便我可以发送一些信息,并覆盖正常的“无响应”windows消息?我认为,如果应用程序挂起,您可以做的不多,但如果应用程序崩溃,您可能可以通过电子邮件捕获其中一些崩溃 您可以通过检查应用程序启动时是否正确关闭并向日志中写入“正在关闭”消息来处理挂起,如果未正确关闭,您可以询问用户是否希望将日志发送

最近,我们的客户遇到了意外的崩溃。我们已经在他们的本地机器上记录错误。当应用程序崩溃或发生意外行为时,是否有一种机制使他们能够以某种方式“发送错误日志”


换句话说,我如何知道应用程序已冻结、挂起或崩溃,以便我可以发送一些信息,并覆盖正常的“无响应”windows消息?

我认为,如果应用程序挂起,您可以做的不多,但如果应用程序崩溃,您可能可以通过电子邮件捕获其中一些崩溃


您可以通过检查应用程序启动时是否正确关闭并向日志中写入“正在关闭”消息来处理挂起,如果未正确关闭,您可以询问用户是否希望将日志发送给您。

过去,我有幸将异常记录到Web服务中(只要允许客户端登录到internet)使用下面的代码。这用于记录您尚未捕获的任何内容。如果您在发布模式下编译应用程序,但还包括pdb文件,您将获得带有行号的stacktrace

您还应该记录程序集的版本,以了解应用程序的哪个版本会给您带来错误

public void RegisterHandlers()
{
    Application.ThreadException += new ThreadExceptionEventHandler(ThreadExceptionFunction);
    Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionFunction);
}

private void UnhandledExceptionFunction(object sender, UnhandledExceptionEventArgs args)
{
    Exception e = (Exception)args.ExceptionObject;
    ExceptionLogger(e.StackTrace);
}

private void ThreadExceptionFunction(object sender, ThreadExceptionEventArgs args)
{
    ExceptionLogger(args.Exception.StackTrace);
}

private void ExceptionLogger(string trace)
{
    // log the message to a webservice
}

+1:同意,记录用户活动和异常-重新启动后检查。