哪个日志实用程序适用于 C#(ASP.NET、WinForms)中的 .NET 应用程序? [关闭]
Posted
技术标签:
【中文标题】哪个日志实用程序适用于 C#(ASP.NET、WinForms)中的 .NET 应用程序? [关闭]【英文标题】:Which log utility is good for .NET application in C# (ASP.NET, WinForms)? [closed] 【发布时间】:2011-01-07 15:08:12 【问题描述】:我正在尝试评估一些可用于 .NET 框架的最佳日志实用程序,例如 Microsoft Enterprise Library、Log4Net、elmah。
已经完成此练习的人能否帮助我列出市场上最好的产品的优缺点。
感谢和问候, 拉吉夫·兰詹·拉尔
【问题讨论】:
您有任何特定的日志记录要求吗?因为你列出的所有这些都很棒 先搜索 Stack Overflow 怎么样? ***.com/questions/98080/…***.com/questions/147557/error-logging-in-c***.com/questions/185542/net-logging-framework 我还会使用 ELMAH 进行错误管理,使用 Serilog 记录其他所有内容。这是ELMAH Tutorial。另外,请查看 .NET Logging Tools and Libraries,其中包含实际维护的日志框架的概述。 【参考方案1】:我使用过 Logstash (https://www.elastic.co/products/logstash),它非常好而且是开源的。
【讨论】:
【参考方案2】:还没有看到这个,但是我发现内置的 System.Diagnostics TraceSource 和 TraceListeners 对于日志记录非常强大。我们为将日志保存到的不同数据源构建了许多高性能自定义 TraceListener。
我们一直在配置文件中交换不同的监听器。我们利用 System.Diagnostics.CorrelationManager 通过日志遍历许多服务器、进程和线程的执行链。
总而言之,我们在框架附带的基础上构建了一个复杂的日志记录解决方案,我对此非常满意。
【讨论】:
【参考方案3】:log4net 用于 Windows 窗体,log4net 和 ELMAH 用于 ASP.NET。
ELMAH 和 log4net 有不同的用途。 ELMAH 捕获有关未处理异常的数据,而 log4net 提供可配置级别(INFO、WARN、DEBUG、FATAL)的日志框架。 log4net 要求您在代码中主动编写日志记录语句;正确配置后,ELMAH 会自动工作。
【讨论】:
【参考方案4】:查看 Gibraltar 以获得出色的日志记录以及更多信息。
它有自己的日志 API,我们也有用于 log4net、NLog 和 Object Guy 的日志框架(PostSharp 也是!)的适配器。除了日志记录,Gibraltar 还收集 ELMAH 等错误,并收集对客户支持或 CEIP 有用的其他指标。
【讨论】:
【参考方案5】:看看我的logging framework。使用方便。易于配置。易于扩展。
然后听听this guy says 的内容。
【讨论】:
【参考方案6】:我也听说过关于NLog 的好消息,虽然我还没有测试过。他们说 API 类似于 log4net 提供的 API。
此外,通过 SO,您有很多与此问题相关的问题:
https://***.com/questions/98080/what-is-the-best-logging-solution-for-a-c-net-3-5-project
.NET logging framework
Error logging in C#
希望这会有所帮助。
【讨论】:
【参考方案7】:一般来说,Log4net 比较好。
优点:Log4Net 支持许多输出源。缺点:有时会减慢您的应用程序。
对于 ASP.NET 应用程序是最好的ELMAH。
优点:您无需稍微更改应用程序代码即可使用 Elmah。你只需要包含在你的应用程序中。缺点:我不知道。
【讨论】:
Log4net 只是在实现方式和附加的类方面比较慢。 ELMAH +1。我已经使用 ELMAH 多年了,它很棒。大约一年前,我开始使用 ELMAH 手动记录非 Web 应用程序的错误。我不得不稍微更新代码以允许我将应用程序名称传递给它,但它运行良好。【参考方案8】:我曾经使用自己的自定义、entlib、log4net,然后是 Elmah
对于 asp.net 错误报告,Elmah 领先于其他人。然而,我希望改进的几件事是过滤,也许是电子邮件的每日摘要,而不是每个错误一封电子邮件。
如果您想注入日志记录、警告、调试、跟踪等,那么我会选择 log4net。
但这取决于您所追求的日志记录类型...
【讨论】:
Rippo,请详细说明一下,因为我相信 RRL 会很感激它——它肯定也会对我们的公司项目有所帮助(我们正处于另一个手动编程解决方案的边缘)。额外的反馈可能会被证明是无价的。 您希望我详细说明哪一点? 关于 (iyho) 错误报告究竟是什么让 Elmah 在竞争中遥遥领先,它的工作方式是否有所不同?快点?更优雅?等等 你用过吗?没有那么我建议你看看,如果是那么也许你不需要问这个。如果您想进一步讨论这个问题,那么我建议您将这些差异作为一个新的 Stack Overflow 问题来提问。 HTH。【参考方案9】:Enterprise Library 是我使用过的唯一正式版本,我们的团队发现它过于繁琐且缺乏黄金时段的多功能性。您可以安全地避免它,并且最终可能会更好地编写自己的解决方案。
我没有机会使用 Log4Net 或 Elmah。
【讨论】:
【参考方案10】:elmah 是最好的。 elmah 摇滚!
【讨论】:
@this。 __curious_geek:elmah 也适用于 Windows 应用程序吗? 没有。 Elmah 使用特定的 ASP.NET 平台功能(处理程序)。 ELMAH 非常易于使用,并且在 Windows 应用程序中使用它也非常简单。唯一的缺点是你失去了它附带的漂亮的 HTTPModule,但幸运的是有一个 codeplex 项目可以帮助聚合这些。 aspexceptionreporter.codeplex.com以上是关于哪个日志实用程序适用于 C#(ASP.NET、WinForms)中的 .NET 应用程序? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何确定在 C# ASP.NET CORE MVC 5.0 中选择了哪个单选按钮
部分视图部分适用于 JQuery,但不完全适用于 C# ASP.Net MVC 5