【问题标题】:What other alternatives to log4net logging exist? [closed]log4net 日志记录还有哪些其他替代方案? [关闭]
【发布时间】:2010-12-05 18:19:42
【问题描述】:

(主观)

我正在寻找您在应用程序中执行登录时使用的内容。这个 log4net 事情让我很头疼。那里有更好的答案,还是每个人都在自制解决方案?我知道 System.Diagnostics.Trace 子系统非常有能力,我应该对此进行分层吗?

【问题讨论】:

  • 您为什么不使用 log4net 定义您的要求/痛点?习惯了还是比较方便的。
  • 有关 log4net 的一些问题,请参阅 Rippo 帖子上的 cmets。

标签: c# .net logging utilities


【解决方案1】:

NLog 可能是该领域的另一个大玩家。另外,企业库中有一个application bloc,专门用于跟踪和日志记录。

【讨论】:

  • +1 用于 NLog,没看到用过我去看看。
【解决方案2】:

为什么不只使用 .NET 类进行日志记录?

使用自定义侦听器,您几乎可以对日志执行任何操作,可以应用过滤器,将您的日志传播到多个目标、数据库、文件、网络等。

只要注意 .NET-Framework 的功能,您就会感到惊讶。

【讨论】:

  • 我正在考虑这种方法。最大的挑战是您最终仍然要实现线程安全的所有编写器并包装客户端 API 调用以防止字符串格式化等导致应用程序崩溃。由于大多数日志记录是在 catch 块中完成的,因此生成异常是不好的。虽然仍然是使用该机制的可行方法,但它最终仍然主要是自制的。
【解决方案3】:

有很多 .NET 日志库和工具,这里有一个详尽的列表:

http://www.dotnetlogging.com/

您可能还想看看我们的 .NET 日志记录产品 SmartInspect,它提供了丰富的日志记录功能(与大多数其他日志记录工具的纯文本日志记录功能相比)并带有一个日志查看器和可选的日志服务器应用程序。

【讨论】:

    【解决方案4】:

    试试Elmah,它很简单,请注意,一旦你投入其中,log4net 并不是那么糟糕......

    你的头痛到底是什么?

    【讨论】:

    • 多实例应用程序的主要并发问题。那和整个事情是相当容错的。例如,当一个记录器失败时,其他记录器不会被调用。由于文件锁与实际软件的冲突,NUnits 生成错误输出也很烦人。这主要是由于我们通过在进程内运行 Asp.net 主机而不“专门化”web.config 来测试 web 服务的方式。
    • @csharptest.net:不太清楚你的意思。 Log4net 设计为故障停止;请参阅“log4net 是可靠的日志记录系统吗?”下的 logging.apache.org/log4net/release/faq.html。如果您依赖日志记录来始终工作,那么 log4net 不适合您。
    【解决方案5】:

    我们只在公司环境中使用Enterprise Library (Logging Block)。我最近开始在个人项目中使用Log4Net

    根据经验,Enterprise Library 尽管功能强大,但启动和运行起来非常痛苦。不仅要弄清楚要使用哪个 dll,而且配置也会变得笨拙。

    另一方面,我发现 Log4Net 非常简单,您可以立即启动并运行;不到一个小时。

    当然,我是一名 MS 迷(好吧,不是真的,但他们是我谋生的原因)并且通常会选择 MS。但是,我建议在工作中迁移到 Log4Net。它的简单性确实令人耳目一新。

    【讨论】:

      【解决方案6】:

      看看Common.Logging。它适用于所有主要的日志框架(system.diagnostics、log4net、nlog、企业库),并允许您从配置中切换日志框架。

      根据我的个人经验 - 我在不允许我们使用开源的公司环境中使用 .NET 跟踪,并且在我们完善了滚动文件跟踪侦听器之后,它非常易于使用。现在我使用 log4net,它很不错,但需要一些时间来适应。

      【讨论】:

        【解决方案7】:

        我知道这个问题太老了,您正在寻找 log4net 的替代品,但相信我 log4net 是最好的日志记录解决方案,并且是最常用的,并且提供比任何其他日志记录框架更大范围的日志侦听器。此外,您甚至可以实现自定义附加程序以及内置附加程序。对于那些在配置 log4net 时遇到问题的人,可以使用以下文章,其中描述了分步指南以使其工作。

        Log4Net section in Web.Config generates Error

        记录愉快:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-12-21
          • 2011-04-22
          • 2011-03-03
          • 2010-09-28
          • 2013-11-26
          • 2011-03-13
          • 1970-01-01
          相关资源
          最近更新 更多