我正在寻找一种比我们目前必须处理的意外生产错误更好的解决方案,而无需重新发明轮子。
我们的大量产品是安装在远程站点的 WinForm 和 WPF 应用程序。从 NullReferenceExceptions 到“一般网络错误”,不可避免地会发生意外错误。因此,从程序员错误到环境问题。
目前,所有这些未处理的异常都使用 log4net 记录下来,然后通过电子邮件发送给我们进行分析。然而,我们发现有时这些错误“报告”包含的信息太少,无法识别问题。
在这些报告中,我们需要以下信息:
- 应用名称
- 应用版本
- 工作站
- 可能是屏幕截图
- 异常详情
- 操作系统
- 可用内存
- 运行进程
- 等等...
我真的不想通过从头开始开发来重新发明轮子。需要的组件:
- 错误收集(详情如上)
- 错误“发件人”(如果数据库或 Internet 不可用,则需要排队)
- 错误数据库
- 分析和报告这些错误。例如,10 个最常见的错误或超时发生在下午 4:00 到下午 5:00 之间。版本 x 和 y 之间的错误比较如何?
注意:我们将SmartAssembly视为一种可能的解决方案,但虽然很接近,但它并不能完全满足我们的需求,我希望听到其他开发人员做了什么以及是否存在一些替代方案。
编辑:感谢到目前为止的答案。也许我最初的问题并不清楚,问题不在于如何捕获所有未经处理的异常,而是如何处理它们并围绕它们创建报告引擎(分析)。