Enterprise Logging Block vs NLog vs log4net

ima*_*mak 26 c# log4net enterprise-library nlog

我需要在我的项目中使用日志库,并考虑在Enterprise Logging Block与NLog vs log4net之间.我在比较中发现了一些链接,但大多数链接已经很老了,并抱怨没有新版本的log4net等等.

任何人都建议根据当前数据在易用性,易配置性,性能,可扩展性等方面哪一个更好.

W.G*_*oss 18

我刚刚评估了log4net和NLog在更大项目中的使用情况.两者都具有类似的界面,并且具有高度可配置性.

NLog似乎得到了更好的维护:log4net与.Net4的不兼容性在log4net中仍然没有得到很长时间的解决.Nlog附带了一些更多的"铃声和口哨声",如NuGet包和用于Visual Studio的Xml Schema,用于编辑配置文件.

最后我们决定使用log4net,因为我们测量了log4net更好的性能:一个简单的测试,将10000条日志消息写入文件和网络日志查看器(Log2Console)显示出log4net性能提高了十倍!我们没有在配置文件中进行调整,文件和notwork logger使用了最小配置.您应该使用项目的典型日志记录设置自行验证.

  • 刚看了一下探查器:似乎问题在于记录器的默认设置.log4net保持日志文件打开是默认的,NLog不是.如果适当配置NLog,它显示与log4net相同的性能. (26认同)
  • 我很想看到对记录器性能的详细分析,我所看到的大多数讨论似乎都围绕着有限数量的个人测试案例.我听说很多人说NLog比Log4Net要快得多,但没有一个提供数字.无论如何,它们都比EntLib日志更快:) (2认同)

dri*_*iis 10

我个人喜欢log4net.它快速,稳定且可配置(并且使用自定义appender等进行扩展非常容易).

我没有被新版本的缺乏所困扰 - 在我看来它只是证明代码库是稳定的并且包含它应该具有的功能.毕竟,我希望我的日志记录最稳定.

这是一个稍微类似的问题,也许你也可以使用那里的一些答案.

  • [这个人](http://www.alteridem.net/2010/11/04/why-i-switched-from-log4net-to-nlog/)写道,Log4Net中存在很多错误,它是失败了很多自己的测试套件.情况可能有所改善,但我会毫不犹豫地根据下面的问题将其称为稳定版本,以及.NET4兼容版本所花费的时间. (3认同)
  • 你试过NLog吗? (2认同)

k3b*_*k3b 6

如果您使用Common.Logging,则可以推迟决定"使用哪个记录器" .这是一个日志包装器,您可以在其中配置日志记录应该转到log4net,nlog,System.Diagnostics.Debug.我不知道Enterprise Logging Block,我不知道是否有用于常见日志记录的"Enterprise Logging Block"插件.