Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对于一般的日志记录来说是新的,但是我应该在MVC3应用程序中登录什么呢?_C#_.net_Asp.net Mvc 3_Logging_Nlog - Fatal编程技术网

C# 对于一般的日志记录来说是新的,但是我应该在MVC3应用程序中登录什么呢?

C# 对于一般的日志记录来说是新的,但是我应该在MVC3应用程序中登录什么呢?,c#,.net,asp.net-mvc-3,logging,nlog,C#,.net,Asp.net Mvc 3,Logging,Nlog,我对日志记录真的是个新手,我决定从现在开始,是时候冒险将它应用到我的应用程序中了 我将使用NLog,因为我听说它的设置非常快速和简单 我应该关注哪些类型的日志信息?哪些信息应该被认为是多余和不必要的 在更具体的一行,我应该把我的\u logger.Info(“Foo”)放在哪里呼叫?在我的控制器中的每个ActionMethod中?日志记录的重要性无法用一两句话来解释 日志记录是应用程序支持二级和三级团队调查的重要组成部分。他们需要日志来响应所发生的事情、bug等等 由于日志记录是任何应用程序的非

我对日志记录真的是个新手,我决定从现在开始,是时候冒险将它应用到我的应用程序中了

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

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


在更具体的一行,我应该把我的
\u logger.Info(“Foo”)放在哪里呼叫?在我的控制器中的每个ActionMethod中?

日志记录的重要性无法用一两句话来解释

日志记录是应用程序支持二级和三级团队调查的重要组成部分。他们需要日志来响应所发生的事情、bug等等

由于日志记录是任何应用程序的非功能性关注点,它是面向方面编程的一个交叉关注点,Java开发部门使用了许多aop框架,如aspectJ,与成熟的日志记录者一起实现日志记录。

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


为登录.net提供了很好的工具

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

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

对于其他步骤,我们注销调试信息(加载记录id 15)log.debug(…) 其他时间使用log.info(..)信息“处理客户JOHN” 当我们发现异常时,我们 log.Error()

然后我们部署我们的应用程序,并在第一时间将日志级别设置为debug,然后在其顺利运行后切换到“info”

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

还请记住,当您捕获异常并记录它们时,现在请重新显示它们

throw ex; 掷骰子; 就这么简单

throw; 投掷; log4net可在此处找到: 一个nuget软件包可在以下位置进行自动配置:

ELMAH也可通过nuget进行自动配置,不过使用MVC还需要执行其他步骤。请查看:

不完全-mvc需要更多的时间才能正确捕获所有内容。我同意,但对于刚开始的人来说,这会提供大量的日志记录。显然,他应该开始处理自己的错误并将其正确记录下来,作为下一步。不要因为我这样做而抛出ex
。我只想补充一下你不应该抛出ex.Word的原因。:)总是很惊讶有多少人仍然犯这个错误