.net - 日志框架与 System.Diagnostics 跟踪

标签 .net asp.net-mvc logging asp.net-web-api trace

由于我目前正在我的(Asp.Net Web Api)应用程序中设置日志记录,因此我正在阅读有关日志记录的最佳实践。我提出了这个关于 logging best practices 的问题.

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

目前我启用了跟踪,到处记录,感觉有点困惑,日志和跟踪没有加在一起。

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

但另一方面,我总是学到:

Logging != Tracing



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

如果我放弃了日志框架,我应该使用一个接口(interface)以防我们再次切换到另一个日志/跟踪框架,还是我可以只依赖 System.Diagnostics?

最佳答案

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

根据我的发现,我会说将 Diagnosisics.Trace 转换为日志框架比尝试处理我发现的任何日志框架的重量要高效得多。 (我同意 Trace != Logging)

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

将 Trace 构建到日志记录框架需要做一些工作,但它是高度可重用的,因为它只是核心诊断 dll,如果没有别的原因,您可能已经在程序中使用了 StopWatch 来计时。

无论如何,这只是我的看法,但我更喜欢 Diagnostics.Trace 路线。
考虑查看:http://www.codeproject.com/Articles/2680/Writing-custom-NET-trace-listeners - 它很旧,但会告诉你什么是你自己的。

关于.net - 日志框架与 System.Diagnostics 跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14776395/

相关文章:

asp.net-mvc - ASP MVC.NET3 本地 IIS7 对象引用错误

.net - 跟踪与日志记录以及 log4net 如何适应?

file - 日志文件不会生成完整的日志,尽管执行已完成

.net - 奇怪的串行端口名称不起作用

c# - 将异步添加到方法签名是一项重大更改吗?

c# - 在具有多个上下文的 Entity Framework 上使用异步保存更改

c# - 使用授权属性验证登录用户的身份

c# - 从 SqlCommand 对象返回一个列表——我怎样才能让数据库尽可能少地工作?

c# - AsParallel() 或异步/等待

azure - 在 azure 中,如何在汇总语句中连接字符串?