为了账号安全,请及时绑定邮箱和手机立即绑定

log4net与Nlog

log4net与Nlog

任何人都有经验吗?他们如何相互对抗?我们正计划使用其中之一来登录企业应用程序。参考文献:log4net的n日志编辑:我们没有现有的依赖关系到nlog或log4net。
查看完整描述

3 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

我最近受命为即将到来的项目“原型化一些登录”。我没有任何日志记录框架的经验。我在Log4Net,NLog和Enterprise Library上研究,浏览了教程,制作了玩具应用程序,等等。3-4周后回来,将它们放在一起进行演示。希望其中一些对您有用。

我对我们的项目的建议是:

  1. 使用日志外观(例如Common.Logging,SimpleLoggingFacade)来避免直接依赖。

  2. 如果最终将Enterprise Library用于其他功能,则也将其用于日志记录。

  3. 如果最终使用的东西依赖Log4Net,请使用Log4Net。

  4. 如果以上都不是,请使用NLog。我更喜欢。

这是基于以下发现(观点!):

  • 所有这三个框架都有能力并且可以做一些复杂的事情。我们需要一个高质量的解决方案,但坦率地说,不需要超高性能或60种类型的事件接收器。

  • 所有这三个都有非常相似的基本概念。

  • 每个都有自己的绝妙技巧,例如真正的高级路由,动态日志文件名,文件截断等。

  • 所有3个文件都以自己的方式很好地记录在案。

  • 对于像我这样的完整新手,他们一开始有点尴尬。这里的基础知识没有太大的差异。我克服了

  • 几周后重新访问时,NLog 显然是最容易恢复的。我只需要很少的化妆。使用Log4Net,我不得不重新回顾一些在线示例才能开始。有了EntLib,我放弃了,并从头开始重新制作了这些教程-我完全迷失了。

  • 我不知道如何让EntLib做一些事情,例如登录数据库。这可能很容易,但是超出了我的时间限制。

  • Log4Net和NLog的代码占用量很小。EntLib垃圾邮件,但无论如何我都会在其上使用外墙。

  • 我不小心配置了EntLib,它在运行时告诉我。Log4Net没有。我没有使用NLog意外配置错误。

  • EntLib带有一个漂亮的app.config编辑器,您100%需要它。NLog具有配置文件架构,因此您会得到“ intellisense”。Log4Net随附nada。

显然,到目前为止,我喜欢NLog。尽管有其他解决方案,但仍不足以使用它。


查看完整回答
反对 回复 2019-09-27
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

尚未讨论的关键考虑因素是支持和更新。


自2006年4月19日发布1.2.10版以来,Log4Net尚未更新。


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


NET Framework 2.0 SP1及更高版本,3.5和4.0(客户端和扩展配置文件)

Silverlight 2.0、3.0、4.0

.NET Compact Framework 2.0、3.5

Mono 2.x配置文件


查看完整回答
反对 回复 2019-09-27
?
开满天机

TA贡献1786条经验 获得超12个赞

最近在这两个框架上都有经验,我认为我可以就每个框架分享自己的观点。

我被要求评估现有Web应用程序的日志记录框架,在经历各种在线论坛后,我将选择范围缩小到NLog(v2.0)和log4net(v1.2.11)。这是我的发现:

  1. 使用NLog进行设置/启动非常简单。您在他们的网站上浏览了“入门指南”,然后就完成了。您有一个不错的主意,nlog会是什么样子。配置文件非常直观,任何人都可以理解配置。例如:如果要设置内部登录,请在Nlog配置文件的头节点中设置该标志,这是您期望的位置。在log4net中,您可以在web.config的appSettings部分中设置不同的标志。

  2. 在log4net中,内部日志记录不会输出令人讨厌的时间戳。在Nlog中,您会获得带有时间戳的漂亮日志。我发现它对我的评估非常有用。

  3. log4net中的过滤器-您最好检查一下我的问题-log4net过滤器-如何编写AND过滤器以忽略日志消息,如果您找到答案或解决方案,请告诉我。我了解,此问题有解决方法,因为您可以编写自己的自定义过滤器。但是有些东西在log4net中不容易获得。

  4. 性能-我使用存储过程将大约3000条日志消息记录到数据库中。我使用了简单的for循环(int i = 0; i <3000; i ++ ...)记录了3000条相同的消息。对于日志记录:log4net AdoAppender花费的时间几乎是NLog的两倍。

  5. Log4net不支持异步附加程序。

选择NLog作为日志记录框架对我来说已经足够了。:)


查看完整回答
反对 回复 2019-09-27
  • 3 回答
  • 0 关注
  • 1347 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信