2024-01-09 08:00:07

log4net vs. nlog

有人有这两方面的经验吗?它们之间有什么不同?

我们计划使用其中一个来登录企业应用程序。

引用:

log4net

nlog

编辑:我们对nlog或log4net没有现有的依赖关系。


当前回答

如果你去这里,你可以找到一个全面的矩阵,包括NLog和Log4Net库,以及企业库和其他产品。

有人可能会说,这个矩阵是为了强调矩阵中唯一的商业图书馆的特征。我认为这是正确的,但它是有用的,无论如何驱动我的选择与NLog。

问候

其他回答

对我们来说,关键的区别在于整体表现……

看看Logger。与Log4Net相比,NLog中的IsDebugEnabled,从我们的测试来看,NLog的开销更少,这就是我们所追求的(低延迟的东西)。

干杯, 弗洛里安

对于那些晚到这个线程的人,你可能想要回顾一下。net基类库(BCL)。在引入TraceSource类(大约在2005年)时,许多人忽略了。net 1.1和。net 2.0之间的变化。

使用TraceSource类似于其他日志框架,对日志进行粒度控制,在app.config/web中配置。配置和编程访问-没有企业应用程序块的开销。

.Net BCL团队博客:跟踪介绍-第一部分(也可以查看第二部分a,b,c)

还有很多比较:“log4net vs TraceSource”

正如我注意到的那样,log4net在应用程序运行的整个过程中都会锁定它们的输出文件,因此不能删除它们。除此之外,它们是相似的。

所以我更喜欢NLog。

我也支持NLog,因为它也可以处理非托管代码。 我认为可以同时使用log4net和log4cxx,但是NLog同时处理托管和非托管代码。

我还看了Common。日志,一个对日志api进行抽象的facade,它支持log4net, NLog和enterprise Library。我不认为我会使用它,但我喜欢他们如何使用lambdas来提高日志记录被禁用时的性能(一个与NLog和其他可能共享的特性)。

我认为一般的共识是nlog更容易配置和使用。不过,两者都很有能力。