C#中使用最广泛的日志框架是什么?

时间:2009-08-11 12:54:01

标签: c# logging

我正在研究如何在我的C#应用​​程序中实现日志记录 - 它是一个DLL类库。哪些日志框架最广泛使用 - 什么会给我的DLL用户最大的灵活性和可配置性?是否存在与log4j等效的C#?

7 个答案:

答案 0 :(得分:39)

2009答案: .NET平台的log4j相当于log4net,我猜这是广泛使用的。


2019答​​案:以下是https://github.com/quozd/awesome-dotnet/blob/master/README.md#logging的各种备选方案:

  • Essential Diagnostics - 扩展System.Diagnostics名称空间的内置功能,以提供灵活的日志记录
  • NLog - NLog - 高级.NET和Silverlight日志记录
  • Logazmic - Windows的开源NLog查看器
  • ELMAH - ELMAH官方网站
  • Elmah MVC - Elmah for MVC
  • Logary - Logary是一个针对Mono和.NET的高性能,多目标日志记录,度量,跟踪和运行状况检查库。 .NET对DropWizard的回答。支持许多针对微服务构建的目标。
  • Log4Net - Apache log4net库是一个帮助程序员将日志语句输出到各种输出目标的工具
  • com.csutil.Log - 一个轻量级的零配置日志包装器,可以与Serilog等其他日志库结合使用,用于更复杂的用例。
  • Serilog - NoSQL时代的一个严肃的日志库。将最好的传统和结构化诊断日志记录结合在一个易于使用的软件包中。
  • StackExchange.Exceptional - 用于Stack Exchange网络的错误处理程序
  • Semantic Logging Application Block (SLAB) - 扩展System.Diagnostics.Tracing命名空间(EventSource类)的内置功能,以记录到几个接收器,包括Azure表,数据库,文件(JSON,XML,文本)。支持通过ETW进行进程内和进程外日志记录,以及用于实时过滤/聚合事件的Rx。
  • Foundatio - 一种流畅的日志记录API,可用于在整个应用程序中记录消息。
  • Exceptionless - 无异常的.NET客户端
  • Loupe - 集中的.NET日志记录和监控。 [专有] [免费等级]
  • elmah.io - 使用ELMAH进行.NET Web应用程序的云日志记录。在你上线之前发现bug。强大的搜索,API,与Slack,GitHub,Visual Studio等的集成。 [Free for OSS] [$]
  • BugSnag - 记录错误。包括有用的诊断信息,如堆栈跟踪,会话,发布等。有一个免费的层。 [免费提供OSS] [$]

答案 1 :(得分:6)

在众多项目中成功使用了NLog。

答案 2 :(得分:3)

我们使用自己的日志记录类,通过调用log4net来实现。这使我们可以利用这个灵活且广泛使用的框架,同时避免在源代码中成千上万直接引用它。

答案 3 :(得分:3)

log4net几乎肯定是最常见的。

但是我使用Common.Logging - http://netcommon.sourceforge.net/因为它给了我灵活性

  

有各种各样的日志记录   .NET当前的实现   使用,log4net,企业库   记录,NLog,名称最多   流行。有缺点   不同的实现是   他们不共享一个共同的界面   因此强加一个特定的   记录对用户的实现   你的图书馆。

     

Common.Logging库介绍了一个   简单的抽象,让你   选择特定的日志记录   在运行时实现。因此你   可以推迟决定什么特别的   记录库使用直到   部署。适配器用于   插入特定的日志系统   进入Common.Logging。

答案 4 :(得分:1)

我使用NLog多年来取得了成功,这是一个非常完善的项目。

答案 5 :(得分:0)

Enterprise Library.它非常强大,直接来自Microsoft,包括所有最佳实践。我们在所有项目中都使用它。它非常灵活,你可以使用一个UI工具,以防你不想在配置文件中管理日志记录。

答案 6 :(得分:-1)

人们一直在广泛使用企业库。但是,如今开发人员可能会转而使用其他产品。

我会检查一下,看看它是否具备您需要的必要功能,而不是太过臃肿。