记录框架与System.Diagnostics跟踪

时间:2013-02-08 15:54:08

标签: .net asp.net-mvc logging asp.net-web-api tracing

由于我正在设置Logging in my(Asp.Net Web Api)应用程序,我正在阅读根据日志记录的最佳实践。我提出了关于logging best practices的问题。

我要去Ninject - > Logging Extensions - > Nlog / Log4Net方式,但这个问题(或者我应该说答案)让我第二次思考。

目前我已经启用了跟踪功能,每次都记录下来,并且记录日志和跟踪不会加在一起感觉有些混乱。

我认为当我切换到诊断跟踪并在框架已经给我的基础上构建时,我最终会得到一个更完整的跟踪。讲述一个完整故事的痕迹对我来说听起来更有用,然后是一个单独的跟踪和日志,它们都知道故事的一部分。当然,我总是可以通过听众和过滤器再次分开。

但另一方面我总是学会:

  

记录!=跟踪

所以这给我留下了一个问题,如果我放弃了日志框架,它是项目的起始阶段,还是我应该坚持下去?

如果我删除日志框架,我是否应该使用接口以防我们再次想要切换到另一个日志/跟踪框架,或者我可以只依赖System.Diagnostics?

1 个答案:

答案 0 :(得分:7)

我已尝试过Log4NET路径,并查看了Ninject。

从我发现的内容来看,我认为将Diagnotisics.Trace转换为日志框架比尝试处理我发现的任何日志框架的权重要高得多。 (我同意Trace!= Logging)

也许我是一名控制狂,但我不希望在我的代码库中引入大量意见。我想要工具,而不是紧身衣。

有一些工作可以构建跟踪到日志记录框架,但它是高度可重用的,因为它只是您可能已经在程序中已经拥有的核心诊断程序,如果没有别的,那么StopWatch用于计时。 / p>

无论如何,只是我的意见,但我更喜欢Diagnostics.Trace路线。 考虑一下:http://www.codeproject.com/Articles/2680/Writing-custom-NET-trace-listeners - 它已经过时了,但会向你展示自己需要做些什么。