我有一个使用.NET库的ASP.NET应用程序。我想启用日志记录以便稍后检查错误消息。
我将ASP.NET应用程序和.NET库记录到同一个地方或不同的地方。我不知道怎么做。
我更喜欢使用System.Diagnostics。来自.NET Framework而不是第三方框架,但我不知道这是否是更好的解决方案。
我想记录错误消息,有时还要记录自定义消息。
谢谢!
答案 0 :(得分:3)
.NET有很多日志框架,如果你想在应用程序中使用强大而灵活的日志记录,那么你应该使用one of 3rd party frameworks,我更喜欢log4net。还有几种方法可以仅使用.Net Framework类。
例如,您可以使用以下方法:
最简单的方法是创建您的个人记录器实现,例如,您可以在要将某些内容记录到某处的地方使用File.AppendAllText。如果要将SQL数据库用作日志条目的存储,可以使用填充了相应插入查询的SqlCommand类,也可以定义另一种日志记录方式。但是不推荐这种方式,因为有很多机会支持你的代码的其他人会知道使用众所周知的框架&实践并没有任何机会让他们知道您的实现,因此他们可能需要阅读更多的代码。
您可以使用EventLog类。我们使用它来记录我们的服务和ASP.NET应用程序中发生的严重错误(如未处理的异常)。它允许您无条件地记录到系统范围的存储。该存储可从Microsoft管理控制台(mmc)访问,该存储将是可配置的。
您还可以使用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)