日志框架与System.Diagnostics跟踪对比

4
作为一个正在设置我的(Asp.Net Web Api)应用程序中的日志记录的人,我正在阅读关于最佳实践的有关日志记录的内容。我看到了一个有关日志记录最佳实践的问题。
我一直在使用Ninject -> Logging Extensions -> Nlog / Log4Net的方式,但是这个问题(或者说答案)让我再次思考。
目前我已经启用了跟踪,随处记录日志,感觉有些凌乱,因为日志和跟踪并不相互对应。
我认为当我切换到诊断跟踪并在框架提供的基础上构建时,我会得到更完整的跟踪。对我来说,讲述完整故事的跟踪比分别知道故事一部分的跟踪和日志更有用。当然,我也可以始终使用侦听器和过滤器将它们分开。
但另一方面,我一直学到:
日志记录!=跟踪
这让我有了一个问题,我应该放弃日志记录框架吗?毕竟项目还处于起步阶段。或者我应该坚持使用它?
如果我放弃日志记录框架,是否应该使用接口以防我们将来想要再次切换到另一个日志记录/跟踪框架,或者我可以直接依赖System.Diagnostics?
1个回答

7
我尝试过Log4NET路径,并查看了Ninject。从我所发现的来看,将Diagnotisics.Trace转化为日志框架比尝试处理任何我找到的日志框架的负担更具生产力。(并且我同意Trace!= Logging)也许我是一个控制狂,但我不想在我的代码库中引入大量观点。我想要工具,而不是紧身衣。构建Trace成为日志框架需要一些工作,但它是高度可重用的,因为它只是核心诊断dll,您可能已经将其用于程序中以进行计时。无论如何,这只是我的观点,但我更喜欢Diagnostics.Trace路线。考虑查看:http://www.codeproject.com/Articles/2680/Writing-custom-NET-trace-listeners - 它已经过时,但会向您展示自己的必要条件。

感谢您的回答。我选择了这种方式,并且在任何时候都没有后悔过。我使用了common.logging并编写了一个适配器,以满足我的跟踪日志记录需求,使用Diagnostics Trace。生成的日志非常有用,易于阅读和使用。 - Jos Vinke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接