【发布时间】:2010-11-18 14:40:09
【问题描述】:
我正在研究如何在我的 C# 应用程序中实现日志记录 - 它是一个 DLL 类库。哪些日志记录框架使用最广泛——什么可以为我的 DLL 的用户提供最大的灵活性和可配置性?有 C# 等效的 log4j 吗?
【问题讨论】:
-
我会试试 ReflectInsight http://insightextensions.codeplex.com
我正在研究如何在我的 C# 应用程序中实现日志记录 - 它是一个 DLL 类库。哪些日志记录框架使用最广泛——什么可以为我的 DLL 的用户提供最大的灵活性和可配置性?有 C# 等效的 log4j 吗?
【问题讨论】:
2009 答案: .NET 平台的 log4j 等效项是 log4net,我猜它被广泛使用。
2019 答案:以下是来自https://github.com/quozd/awesome-dotnet/blob/master/README.md#logging 的各种替代方案:
【讨论】:
已在众多项目中成功使用 NLog。
【讨论】:
我们使用自己的日志记录类,通过调用log4net 实现。这使我们能够利用这个灵活且广泛使用的框架,同时避免在源代码中直接引用它。
【讨论】:
log4net 几乎可以肯定是最常见的。
但我使用 Common.Logging - http://netcommon.sourceforge.net/,因为它给了我灵活性
有多种日志记录 .NET 目前的实现 使用,log4net,企业库 日志,NLog,以命名最多 受欢迎的。拥有的缺点 不同的实现是 它们不共享一个通用接口 并因此强加一个特定的 对用户的日志记录实现 你的图书馆。
Common.Logging 库引入了一个 简单的抽象让你 选择特定的日志记录 在运行时实现。这样你 可以推迟决定什么特别 要使用的日志库,直到 部署。适配器用于 插入特定的日志记录系统 进入 Common.Logging。
【讨论】:
我多年来一直在成功使用 NLog,这是一个非常出色的项目。
【讨论】:
人们一直在广泛使用 Enterprise Library。但现在开发人员正在转向其他产品,这可能是真的。
我会检查一下,看看它是否具有您需要的必要功能,并且不会太臃肿。
【讨论】:
Enterprise Library. 它功能强大,直接来自 Microsoft,包括所有最佳实践。我们在所有项目中都使用它。它非常灵活,并且有一个 UI 工具可供您使用,以防您不想从配置文件中管理日志记录。
【讨论】: