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

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

Nosrama asked 2020-08-11T21:11:55Z
7个解决方案
42 votes

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网络的错误处理程序
  • 语义日志记录应用程序块(SLAB)-扩展System.Diagnostics.Tracing命名空间(EventSource类)的内置功能,以记录到多个接收器,包括Azure表,数据库,文件(JSON,XML,文本)。 通过ETW和Rx支持进程内和进程外日志记录,以进行事件的实时过滤/聚合。
  • 基础-一种流畅的日志记录API,可用于记录整个应用程序中的消息。
  • 异常-异常.NET客户端
  • 放大镜-集中式.NET日志记录和监视。 [专有] [免费套餐]
  • elmah.io-使用ELMAH的.NET Web应用程序的云日志记录。 在上线之前先发现错误。 强大的搜索,API,与Slack,GitHub,Visual Studio等的集成。 [OSS免费] [$]
  • BugSnag-记录错误。 包括有用的诊断信息,例如堆栈跟踪,会话,版本等。具有免费层。 [OSS免费] [$]
Cagdas Altinkaya answered 2020-08-11T21:13:17Z
6 votes

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

ozczecho answered 2020-08-11T21:13:37Z
3 votes

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

azheglov answered 2020-08-11T21:13:58Z
3 votes

log4net几乎可以肯定是最常见的。

但是我使用Common.Logging-[http://netcommon.sourceforge.net/],因为它为我提供了灵活性

有各种各样的日志记录 .NET的当前实现 使用,log4net,企业库 记录最多的NLog 流行。 不利的一面 不同的实现是 它们不共享公共接口 因此施加了特定的 记录用户的实现 您的图书馆。

Common.Logging库引入了 简单的抽象,让您 选择一个特定的日志 在运行时实施。 这样你 可以推迟决定什么具体 直到使用的日志库 部署。 适配器用于 插入特定的日志记录系统 进入Common.Logging。

gef answered 2020-08-11T21:14:32Z
1 votes

我使用NLog已有多年的成功经验,并且项目做得非常好。

twk answered 2020-08-11T21:14:56Z
0 votes

企业图书馆。 它功能强大,直接来自Microsoft,包括所有最佳实践。 我们在所有项目中都使用它。 它非常灵活,并且有一个UI工具可供您使用,以防您不想弄乱配置文件中的日志记录。

Punit Vora answered 2020-08-11T21:15:16Z
-1 votes

人们已经广泛使用企业库。 但是,如今开发人员正在转向其他产品可能是事实。

我会检查一下,看看它是否具有您需要的必要功能并且没有太多膨胀。

Robert Koritnik answered 2020-08-11T21:15:41Z
translate from https://stackoverflow.com:/questions/1260157/whats-the-most-widely-used-logging-framework-in-c