2011-09-30 51 views
2

我真的很陌生,我决定现在是时候尝试一下,并从现在开始将它应用到我的应用程序中。通常登录的新手,但我应该登录MVC3应用程序?

我将要使用NLog,因为我听说它非常快速且易于设置。

什么类型的信息应该关注日志?什么信息应该被认为是多余的和不必要的?

在更具体的行上,我应该在哪里放置我的_logger.Info("Foo");调用?在我的控制器中的每个ActionMethod中?

回答

2

你应该看看ELMAH 这是使用nuget设置最简单的事情。它为asp.net MVC提供了令人敬畏的日志记录(记录所有异常和与之相关的请求),所有你需要做的工作就是将软件包安装到你的应用程序中。 :)

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

+0

不完全 - mvc需要多一点才能正确捕捉所有内容。 –

+0

我同意,但对于刚开始的人来说,这给了大量的日志记录。显然,他应该开始处理自己的错误并将其作为下一步妥善记录。 – MoXplod

0

记录的重要性不能用一两句话来解释。

日志记录是您的应用程序支持L2和L3团队调查的重要组成部分。他们需要日志来回应发生的事情,错误等等。由于日志形式是任何应用程序的非功能性关注点,它在面向方面编程方面是一个横切关注点,在Java开发翼中使用了很多aop框架(如aspectJ)来与日志记录器一起实现日志记录。

0

我们使用log4net的和ELMAH用于记录的好工具。 ELMAH用于任何顶级或未处理的任何事物。

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

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

然后我们部署我们的应用程序和我们的日志记录级别设置为调试第一个时间点,然后切换到“信息”,一旦其运行平稳。

这提供了相当多的细节,但它取决于你o决定在哪里。我只是说我们几乎每种方法都记录了细节。

还记得当你捕捉异常并记录它们时,现在重新抛出它们。也就是不

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?

+0

不要抛出ex,因为[它会重置堆栈跟踪](http://stackoverflow.com/questions/730250/is-there-a-difference-between-throw-and-throw-ex) –

+0

@endy tjahjono你看了我的文章吗? –

+0

我做到了。我只想补充一下原因*为什么*你不应该抛弃前。 –