一般来说是新的,但是我应该登录MVC3应用程序?

时间:2011-09-30 00:58:09

标签: c# .net asp.net-mvc-3 logging nlog

我真的很擅长日志记录,而且我已经决定是时候冒险尝试从现在开始将它用于我的应用程序。

我将使用NLog,因为我听说它设置起来非常快速和简单。

我应该关注记录什么类型的信息?哪些信息应该被认为是多余的和不必要的?

在更具体的一行中,我应该在哪里拨打_logger.Info("Foo");来电?在我的控制器中的每个ActionMethod中?

4 个答案:

答案 0 :(得分:2)

你应该看看ELMAH 使用nuget进行设置是最简单的方法。它为asp.net MVC提供了很棒的日志记录(记录所有异常和与之相关的请求),您需要做的就是在应用程序中安装软件包。 :)

http://code.google.com/p/elmah/

答案 1 :(得分:0)

记录的重要性无法用一两个字来解释。

日志记录是您的应用程序支持L2和L3团队调查的重要部分。他们需要日志来响应发生的事情,错误等等。

由于日志记录形成了任何应用程序的非功能性问题,因此在面向方面编程方面是一个跨领域的问题,在Java开发机构中使用了像aspectJ这样的许多顶级框架来实现日志记录,以及成熟的记录器。

答案 2 :(得分:0)

http://www.dotnetlogging.com/提供了登录.net

的好工具

答案 3 :(得分:0)

我们使用log4net和ELMAH。 ELMAH用于任何顶级或未处理的。

我们记录(log4net)每个方法。我们写了一个宏来注入日志输入/退出代码(虽然有一个产品会在你的编译代码中注入这个工具)

对于其他步骤,我们注销调试信息(加载记录ID 15)log.Debug(...) 其他时间信息“使用log.Info(..)处理客户JOHN' 当我们捕获异常时我们 log.Error()

然后我们部署我们的应用程序并将我们的日志记录级别设置为第一次调试,然后在其运行顺利后切换到“info”。

这提供了相当多的细节,但由您来决定在哪里。我只是说我们几乎在每种方法中记录细节。

还记得当你捕获异常并记录它们时,现在重新抛出它们。 IE不要

throw ex;

只是简单地

throw;

log4net可以在这里找到: http://logging.apache.org/log4net/ 和一个nuget包可用于自动配置 http://nuget.org/List/Packages/log4net

ELMAH也可以通过nuget进行自动配置,尽管您需要采取额外的步骤来使用MVC。查看: How to get ELMAH to work with ASP.NET MVC [HandleError] attribute?