.NET调试日志

时间:2009-06-02 07:58:05

标签: c# logging

我有一个使用.NET库的ASP.NET应用程序。我想启用日志记录以便稍后检查错误消息。

我将ASP.NET应用程序和.NET库记录到同一个地方或不同的地方。我不知道怎么做。

我更喜欢使用System.Diagnostics。来自.NET Framework而不是第三方框架,但我不知道这是否是更好的解决方案。

我想记录错误消息,有时还要记录自定义消息。

谢谢!

5 个答案:

答案 0 :(得分:3)

.NET有很多日志框架,如果你想在应用程序中使用强大而灵活的日志记录,那么你应该使用one of 3rd party frameworks,我更喜欢log4net。还有几种方法可以仅使用.Net Framework类。

例如,您可以使用以下方法:

  1. 最简单的方法是创建您的个人记录器实现,例如,您可以在要将某些内容记录到某处的地方使用File.AppendAllText。如果要将SQL数据库用作日志条目的存储,可以使用填充了相应插入查询的SqlCommand类,也可以定义另一种日志记录方式。但是不推荐这种方式,因为有很多机会支持你的代码的其他人会知道使用众所周知的框架&实践并没有任何机会让他们知道您的实现,因此他们可能需要阅读更多的代码。

  2. 您可以使用EventLog类。我们使用它来记录我们的服务和ASP.NET应用程序中发生的严重错误(如未处理的异常)。它允许您无条件地记录到系统范围的存储。该存储可从Microsoft管理控制台(mmc)访问,该存储将是可配置的。

  3. 您还可以使用Debug.WriteLine或Trace.WriteLine之类的内容进行日志记录。在这种情况下,您将能够通过编辑web.config文件来配置日志侦听器。您将能够启用或禁用日志记录,更改日志记录方式(记录到文件,事件日志或其他内容)。

答案 1 :(得分:1)

我已经使用ELMAH大约一年了,这是一个很棒的工具。 ELMAH在您的.NET应用程序中捕获任何未处理的异常,并可以使用堆栈跟踪信息登录到db,xml或向您发送电子邮件。

dotnetslackers article是让我开始运作的良好开端。过去一年里,我在大约6个项目中使用了ELMAH,效果很好。配置很简单。这一切都是通过在Web项目中引用.dll,然后在web.config文件中设置值来完成的。捕获的调试信息非常详细。您可以获得完整的堆栈跟踪并捕获当时请求的所有服务器变量。

答案 2 :(得分:0)

ELMAH似乎是目前在ASP.NET中使用的流行框架

答案 3 :(得分:0)

我使用nlog取得了巨大成功。它虽旧但可靠。您可以配置不同的目的地和不同的消息。

答案 4 :(得分:0)