C#异常日志记录的想法

时间:2011-02-26 16:11:13

标签: c# asp.net logging exception-handling

我正在接近我正在开发的C#/ ASP.NET项目的结束,在可预见的未来,我将不得不在其他C#项目中支持这个项目。我真的需要一种漂亮,简单和全局的方式来记录生成的任何异常的所有细节,并将我/日志发送到数据库/等,但也向用户显示“简单”版本。

目前C#有哪些解决方案?此外,由于我的程序几乎没有日志记录功能就完成了,每当抛出异常时以某种方式执行我的日志记录代码都会很棒,而不会显式调用它。

4 个答案:

答案 0 :(得分:3)

来自apache的

log4net和来自microsoft的最佳practices and patterns的日志记录块。

如果您有自定义例外,则可以包含日志记录功能。

答案 1 :(得分:2)

使用Elmah。你可以从NUGET得到它。 Log4net也是一个很好的选择。

只需将Application_Error方法添加到global.asax并在此处理错误。

答案 2 :(得分:0)

你可以创建一个处理所有日志记录并返回信息的类,这些信息可以放在一个简单的消息框中,告诉用户友好的想法,然后只需要在可疑的代码上调用你的类方法。这就是我通常做的事情。

或者,如果我正在吠叫错误的树(如果发生的话),这可能对你有所帮助

http://csharp-source.net/open-source/logging

答案 3 :(得分:0)

考虑Windows Error Reporting。要使用WER,只需允许意外的异常来逃避您的进程。操作系统将捕获一个快照,并(在用户允许的情况下)将其上传到Microsoft的服务器,在那里它被自动分析并(启发式地)放入“桶”中(单个“桶”中的所有报告很有可能由同样的错误)。

这使您不仅可以查看异常,还可以在引发异常时收集进程的快照。 VS2010能够打开这些快照(小型转储)。 WER还包括确定哪些错误更重要的工具(即影响更多用户)。

您需要使用Authenticode代码签名证书才能使用WER(过去几年的价格范围为每年$ 100- $ 400)。