是否有任何标准方法来报告桌面应用程序中的错误?

时间:2016-11-22 11:00:18

标签: .net wpf error-handling

是否有任何标准系统或.NET API用于报告WPF应用程序中发生的错误,或者您必须始终实现自定义解决方案?

2 个答案:

答案 0 :(得分:0)

log4net怎么样? https://logging.apache.org/log4net/

它允许您输出到多个记录目标:

  1. 使用预准备语句或存储过程将日志记录事件写入数据库。
  2. 将颜色突出显示的记录事件写入ANSI终端窗口。
  3. 将日志记录事件写入ASP跟踪上下文。然后可以在ASP页面的末尾或ASP跟踪页面上呈现它们。
  4. 将颜色突出显示的日志记录事件写入应用程序的Windows控制台。
  5. 将日志记录事件写入应用程序的控制台。事件可以是标准流或标准错误流。
  6. 将日志记录事件写入.NET系统。
  7. 将日志记录事件写入Windows事件日志。
  8. 将日志记录事件写入文件系统中的文件。
  9. 将日志记录事件写入本地syslog服务(仅限UNIX)。
  10. 将记录事件存储在内存缓冲区中。
  11. 将日志记录事件写入Windows Messenger服务。这些消息显示在用户终端的对话框中。
  12. 将日志记录事件写入调试器。如果应用程序没有调试器,系统调试器将显示该字符串。如果应用程序没有调试器且系统调试器未处于活动状态,则忽略该消息。
  13. 使用UDP网络将日志记录事件写入远程syslog服务。
  14. 使用.NET远程处理将记录事件写入远程接收器。
  15. 将日志记录事件写入文件系统中的文件。 RollingFileAppender可以配置为根据日期或文件大小限制记录到多个文件。
  16. 将记录事件发送到电子邮件地址。
  17. 将日志记录事件发送到电子邮件地址,但将电子邮件写入可配置目录,而不是直接通过SMTP发送。
  18. 客户端通过Telnet连接以接收日志记录事件。
  19. 将日志记录事件写入.NET跟踪系统。
  20. 使用UdpClient将记录事件作为无连接UDP数据报发送到远程主机或多播组。

答案 1 :(得分:-2)

我知道的方式就是当你发现错误时,就像这样:

try
   {
   ....
   }

 catch (Exception exception) // catching a general exception is usually a bad idea, would be good to specialise it like FormatException
   {            
   MessageBox.Show(exception.ToString()); // this is usefull when debugging to see exactly what happened     
    throw;              
   }

对于记录这些错误,如果您在应用程序文件夹中进行谷歌搜索将它们全部放在记事本中,那么这就是在线方法的极端情况,然后当客户端崩溃时,您可以添加一个弹出窗口,要求用户通过电子邮件向您发送记事本,有点像Windows要求发送错误报告

更新:根据我所做的研究,只找到了自定义解决方案