2011-05-19 47 views
4

道歉,如果我忽视它,但我不能立即在SO上找到类似的问题。[在此插入您最喜爱的日志记录库]在System.Diagnostics.Trace上的优点是什么?

.Net带有一些内置的日志功能(本质上是System.Diagnostics.Debug和System.Diagnostics.Trace)。

在典型的LOB应用程序中是否有一个很好的理由不使用这些内置设施进行日志记录,而是使用log4net,NLog,EntLib日志块或[在此插入您最喜欢的日志记录库]?

编辑:请注意,我更感兴趣的是查明System.Diagnostics w.r.t的缺点。日志记录功能,而不是不同日志记录库的功能。

回答

2

能够将日志发送到多个端点(系统日志,数据库,事件日志等)可能很有用。

+0

这是不可能的System.Diagnostics程序? TraceListeners怎么样?关于日志级别: – jeroenh 2011-05-19 12:43:57

1

我使用log4net,它的优点是在配置文件中,您可以选择需要的日志级别(严重,错误,警告,信息,调试),并且免费获得电子邮件日志和滚动日志文件等内容。

+0

:Diagnostics.Trace不可能如何实现?这里有不同的级别,对(TraceInformation,TraceWarning,...) – jeroenh 2011-05-19 12:46:21

+0

快速搜索发现有几个SMTP tracelisteners可用(EntLib中只有一个);虽然我使用log4net给出了它。 – jeroenh 2011-05-19 12:47:44

+0

@jeroenh:我没有意识到这一点。 – 2011-05-19 12:52:30

3

我更喜欢使用NLOG或log4net的,因为它给了我:

  1. 记录的目标。我可以选择最适合特定的目的没有改变日志代码的任何位
  2. 我可以登录,我需要一定的情况下由于在对数级的信息
  3. 我可以格式化我的日志条目我喜欢的方式,也可在不同对于diferent方式瞄准
  4. 表现也相当好,感谢批量
  5. 我不是发明轮子
  6. 我可以reause很多次
+0

这些项目中的大部分还包括System.Diagnostics.Trace,不是吗? – jeroenh 2011-05-19 12:48:48

+1

@jeroenh。对于1:使用NLog,你有超过20个目标在盒子外面。使用Trance:你可以自己实现更多,但是它是猴子编码。对于第二种:我可以在不重新编译代码的情况下管理souce-> target,如果可能使用Trace,现在不要使用它。第三名:跟踪Formaters?对于第4位:跟踪应该在生产环境中由于性能原因而被禁用。第五:编写你自己的TraceListeners,你是在做猴子编码。第六:这取决于你的实施。 – Dariusz 2011-05-19 13:10:17

相关问题