【问题标题】:Enterprise Logging Block vs NLog vs log4net [closed]Enterprise Logging Block vs NLog vs log4net [关闭]
【发布时间】:2011-02-11 16:19:41
【问题描述】:

我需要在我的项目中使用日志库,并在 Enterprise Logging Block、NLog 和 log4net 之间进行考虑。我在比较中找到了一些链接,但其中大多数都非常旧,并且抱怨诸如长期没有新版本的 log4net 之类的东西。

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

【问题讨论】:

标签: c# log4net enterprise-library nlog


【解决方案1】:

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

NLog 似乎得到了更好的维护:log4net 与 .Net4 的不兼容问题在 log4net 中很长一段时间都没有得到解决。 Nlog 带有更多的“花里胡哨”,例如 NuGet 包和用于 Visual Studio 的 Xml 架构,用于编辑配置文件。

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

【讨论】:

  • 刚刚查看了分析器:似乎问题在于记录器的默认设置。 log4net 默认保持日志文件打开,NLog 不会。如果你正确配置 NLog,它会显示与 log4net 相同的性能。
  • 我很想看到对记录器性能的详细分析,我看到的大多数讨论似乎都围绕着有限数量的个人测试用例。我听很多人说 NLog 对他们来说比 Log4Net 快得多,但他们都没有提供数字。无论如何,它们都比 EntLib 日志记录要快 :)
【解决方案2】:

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

我不会因为缺少新版本而烦恼 - 在我看来,这只是证明代码库是稳定的并且包含应有的功能。毕竟,我希望我的日志记录首先是稳定的。

这里是slightly similar question,也许你也可以使用那里的一些答案。

【讨论】:

  • This guy 写道,Log4Net 中有很多错误,并且它自己的很多测试套件都失败了。情况可能有所改善,但基于以下问题以及 .NET4 兼容版本所花费的时间,我会犹豫是否称其稳定。
  • @Scott:这是很老的帖子了。现在 log4net 再次处于开发阶段,例如当前版本是 2015-03。所以,这不是正确的论点。
【解决方案3】:

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

【讨论】:

【解决方案4】:

另一个经常被忽视的区别是 NLog 是 BSD 而 log4net 是在 Apache 许可下。 ELB 是 MS-PL(微软的开源版本)。在大多数情况下,这可能无关紧要,只是说说而已。

【讨论】:

  • BSD 许可证和 Apache 许可证到底有什么区别?我想我在 Thrift 和 Zeroc 许可证中也遇到了这种差异。
  • 它们都是非常相似的许可许可证,Apache 更详细(因此更复杂)和限制性更强。我不太了解,但一个主要区别是,使用 Apache 许可证,您需要明确说明您对代码所做的更改。
【解决方案5】:

我发现他们都非常相似和有能力。我使用 Enterprise Library Logging Block 已经有好几年了,但即使在那时它也很不错。 NLog 和 log4net 都是可靠的。

选择其中一个的一个原因可能是第 3 方库集成。例如,如果您使用 NHibernate 或 Quartz 或其他使用 log4net 的库,它可能会推动您的选择。

【讨论】:

    猜你喜欢
    • 2010-11-22
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2011-07-08
    • 2017-06-20
    相关资源
    最近更新 更多