2024-01-09 08:00:07

log4net vs. nlog

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

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

引用:

log4net

nlog

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


当前回答

一个没有被过多讨论的关键考虑因素是支持和更新。

Log4Net自2006年4月19日发布1.2.10版本以来就没有更新过。

相比之下,NLog自2006年以来一直被积极支持,不久将发布NLog 2.0,支持许多在log4net上次更新时还不存在的平台,例如:

NET Framework 2.0 SP1及以上版本,3.5 & 4.0(客户端和扩展配置文件) Silverlight 2.0, 3.0, 4.0 .NET紧凑框架2.0,3.5 Mono 2。x档案

其他回答

您也可以考虑Microsoft企业库日志记录块。它有很好的设计师。

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

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

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

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

对于我运行的一个开源项目,这是一个无耻的宣传,但是考虑到关于哪个. net日志框架更活跃的热烈讨论,我认为我应该发布一个到Serilog的必要链接。

要在应用程序中使用,Serilog类似于log4net(并大量借鉴了log4net)。然而,与其他. net日志选项不同的是,Serilog是关于保存日志事件的结构以供脱机分析。当你写:

Log.Information("The answer is {Answer}", 42);

大多数日志库立即将消息呈现为字符串。Serilog也可以这样做,但它保留了{Answer: 42}属性,以便稍后使用多个NoSQL数据存储之一时,可以根据Answer的值正确地查询事件。

我们已经接近1.0并支持所有的现代(。NET 4.5、Windows Store和Windows Phone平台。

首先查看堆栈的其余部分。

如果你正在使用NHibernate,它直接利用Log4Net。 其他框架可能有它们需要的其他特定的记录器。

除此之外:两者都很好。

我自己选择了Log4Net。配置起来很麻烦,如果配置不正确,找出哪里出了问题也很麻烦。但是,您可以让它做几乎任何您想从日志记录器。

如果你对Log4Net没有长期的问题,这是我写的一篇关于如何开始使用Log4Net的文章: http://elegantcode.com/2007/12/07/getting-started-with-log4net/

一个没有被过多讨论的关键考虑因素是支持和更新。

Log4Net自2006年4月19日发布1.2.10版本以来就没有更新过。

相比之下,NLog自2006年以来一直被积极支持,不久将发布NLog 2.0,支持许多在log4net上次更新时还不存在的平台,例如:

NET Framework 2.0 SP1及以上版本,3.5 & 4.0(客户端和扩展配置文件) Silverlight 2.0, 3.0, 4.0 .NET紧凑框架2.0,3.5 Mono 2。x档案