.net - 用于调试的可靠错误消息中应该包含哪些内容?

标签 .net debugging error-handling

除了通知用户之外,我们还希望收集信息用于调试目的。我们的系统是一个只面向大约 1400 个客户的小众系统,因此我们的资金并不像我们希望的那样充足,因此错误比我们希望的更常见。目前,我们有一个窗口,以较大的字体显示错误消息的第一行,并带有黄色背景,以吸引用户的注意力,而可怕的部分位于其下方的文本框中,带有灰色背景。还有一个按钮可以将所有内容放入复制缓冲区中,以便发送给客户支持。我们尝试访问的消息由Exception.Message、堆栈跟踪的最后五个部分以及导致错误的方法的名称(Reflection.MethodBase)组成。我们计划添加一个功能,让用户说出他当时在做什么,也许还可以添加一个单选按钮来指示这种情况发生的频率,并将其写入日志文件。我们还应该包括哪些其他有用的信息?

我们还在考虑通过电子邮件将其发送给客户支持,但不会强调电子邮件是否失败。电子邮件还有其他注意事项 - 客户支持可能会淹没其中,用户可能会反对,因为我们也会发送系统信息,等等。

我在 SO 上发现了两个类似的问题,但它们并没有真正关注我感兴趣的内容。Error Message Text - Best Practices处理如何为用户提供有用的消息,以及 Best way to handle error messages处理错误 ID 与错误文本的保存位置。我对调试更感兴趣(因为不幸的是我们的系统确实有很多错误)。

最佳答案

如果您最终包含自动电子邮件提交,请将它们发送到新邮箱,以便您可以过滤它们并路由它们,而不会打扰现有的客户支持人员。

除此之外,包含以下内容可能会很有用:

  • 如果您的产品有多个版本,则错误消息中的软件版本号。
  • UTC 日期/时间
  • 操作系统/浏览器/环境/等。 (无论相关)
  • 用户的安全角色、登录名等
  • 跟进用户的联系信息(电话、电子邮件等)
  • 错误屏幕上为您提供的联系信息

关于.net - 用于调试的可靠错误消息中应该包含哪些内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/299608/

相关文章:

c# - ASP.NET Web API 控制成功代码(200 与 201)

c++ - eclipse CDT : how to enable project debugging

java - OpenCV 错误 : Assertion failed (src. dims == 2 && info.height == (uint32_t)

java - 是否有自动删除发布版本调试方法的方法?

tsql - 如何使UDF中的错误静音?

mysql - 在 SQLAlchemy 中处理 mysql 重启

c# - 关于C#中线程的问题

c# - 如何在 VS 2010 中为变量/字段/列表编写注释/文档?

c# - 如何在c#中使用列表中的Except方法

php - 我可以用 PHP 检测和处理 MySQL 警告吗?