log4net与Nlog的比较

355

有没有人对两个技术都有经验?它们彼此之间如何比较?

我们计划在企业应用程序中使用其中之一进行日志记录。

参考:

log4net

nlog

编辑:我们目前不依赖nlog或log4net。


9
这是我使用的记录器:System.IO.File.AppendAllText(@"c:\log.txt", string.Format("{0}\r\n", message)); - zumalifeguard
213
对你来说很好,但有些人可能需要动态开启/关闭日志记录、使用不同的日志级别、自动删除旧的日志数据等功能。 - Tor Hovland
23
需要注意的是,Log4Net 的文档非常糟糕。 - BentOnCoding
2
你应该试试ReflectInsight。比http://insightextensions.codeplex.com/更强大。 - code5
@code5 ReflectInsight查看器是商业软件(2014年3月之前免费,2013年7月1日后售价为299美元)。 - yzorg
15个回答

9
我注意到,log4net在应用程序运行期间锁定其输出文件,因此您无法删除它们。否则它们是相似的。因此我更喜欢NLog。

22
在您的文件记录器配置中添加<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />以防止此问题发生(在log4net示例页面上提到:http://logging.apache.org/log4net/release/config-examples.html)。 - EventHorizon

8
我也支持NLog,因为它可以处理非托管代码。 我想log4net和log4cxx可以一起使用,但是NLog可以直接处理托管和非托管代码。 我还看了Common.Logging,它是一个抽象出日志API的门面,支持log4net、NLog和企业库。我不认为我会使用它,但我喜欢他们如何使用lambda表达式在禁用日志记录时提高性能(这个特性与NLog和其他日志工具共享)。

4

3
该工具可以让您视觉化配置,而不是手工编写 XML。这取决于您的喜好... - Rashack
13
使用视觉工具来完成这件事并不是一个好主意。 - Adam Dymitruk
4
或许这不是一件好事,但对于EntLib可视化配置工具是必要的。手动编写配置几乎不可能,因为它太复杂了(你知道,它是来自Microsoft的)。 - Pavel Hodek
1
即使有人不喜欢视觉设计师,为什么要踩呢!:o - nawfal
EntLib以同步方式记录日志,这可能影响性能。 - Michael Freidgeim

2

我认为普遍共识是nlog更容易配置和使用。但两者都非常有能力。


0

根据我的经验,SmartInspect 比 NLog 和 log4net 都要好。

它非常易于使用,文档也很棒,而且你可以使用他们的交互式日志查看器查看和过滤以前记录的消息,这是一个巨大的现实优势。

我喜欢的一件事是数据的选项卡视图,就像 Chrome 中的浏览器选项卡一样。每个选项卡可以提供不同的日志过滤视图。


11
这是一个付费产品。而 NLog 和 Log4Net 是免费的。 - Zo Has

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