【问题标题】:Logging Framework for the ASP.NET applicationASP.NET 应用程序的日志框架
【发布时间】:2010-12-20 17:46:16
【问题描述】:

我的应用程序需要记录有关用户操作(插入、更新、删除等)和异常的信息,我想将 de log 存储在 Oracle10 上,所以我正在搜索一些要使用的日志框架。 我读了一点:

1 -Log4Net

2 - 记录应用程序块

3 - 艾尔玛

您对这些日志工具有何看法? 有什么好的框架(或实现方式)登录我的应用程序?

*与项目经理讨论后,记录应用程序块 将是我们的选择,但是,让我们对此发表评论 =)

【问题讨论】:

标签: asp.net oracle logging


【解决方案1】:

log4net 和 Logging Application Block 都是有效的选择。我认为 ELMAH 主要专注于 error 日志记录,所以这可能不是您想要的(唯一的)。

在工作中,我在几个项目中使用 log4net。它稳定、高效且可扩展,而且我们从未遇到过任何问题。

我可能会使用 log4net 进行日志记录,并使用 ELMAH 记录异常。它可以手动记录未处理的异常,并且您在应用程序中捕获和处理的任何异常都可以通过对 ELMAH 的一次调用来记录。这可能看起来像双重记录(它是:-))。但是,当您的应用程序发生意外失败时,拥有 ELMAH 日志非常有价值。

我听说过关于NLog project 的好消息,但我自己没有使用过。它似乎比 log4net 复杂一些,但确实有一个额外的好处,即能够自动将上下文信息添加到日志消息中(有点像 ELMAH)。

【讨论】:

  • 没有理由 OP 不能使用 ELMAH 记录错误,例如 log4net 记录非错误相关信息。
  • @Scott,当然不是,这实际上也是我自己做的事情。为了避免混淆,将其添加到答案中。
【解决方案2】:

我对不同框架的看法:

  1. Log4Net - 喜欢它。这是我最常使用的日志系统。一切都很容易上手。它也非常灵活,允许您记录任何内容。

  2. 记录应用程序块 - 也是一个不错的选择。我还是更喜欢 Log4Net(但主要是个人原因)。

  3. Elman - 非常适合插入 ASP.NET 应用程序以记录异常。不过,对于一般的消息记录,我仍然会使用 Log4Net。

我根据我的意见猜测我会建议你做什么......

如果没有,请使用 Log4Net 并创建一个适配器,您可以在应用程序中使用它来简化日志记录。

【讨论】:

  • 谢谢贾斯汀。我也喜欢 log4Net,应用程序块似乎也不错。
【解决方案3】:

我个人喜欢BitFactory.Logging,因为它是轻量级的,并且使用适量的抽象使调用代码易于测试。

也就是说,您想要记录的内容(插入、更新、删除)可以仅使用触发器进行记录,这种解决方案可能会根据您的设置表现得更好。

【讨论】:

    【解决方案4】:

    无论如何,我个人总是创建一个包装器,所以我有自己的 ILog 实现,它适用于您选择的任何一个。这使得换入或我们的实现变得容易。

    我尝试了#2,但这有点痛苦; #1 对我们来说效果很好,但我们没有这样做,只是进行了简单的自定义日志记录。关于#3,我只知道有人在他们的组织中实施它时遇到了困难。不知道为什么,但它实际上看起来很有趣。我不认为你可以对任何个人出错。这部分取决于您喜欢的 API。

    HTH。

    【讨论】:

      【解决方案5】:

      Log4net 很安静,它基本上是 log4j 的一个版本。 Elmah 也很好,特别是如果您发现(像我一样)无法写入生产环境中的文件,因为它会写入数据库。此外,Elmah 更适合异常记录,并且很酷,因为它允许您基于事件进行记录。在我的项目中,我通常会同时部署 log4net 和 Elmah

      【讨论】:

        【解决方案6】:

        如果您正在审核数据库中的数据更改,那么您可以在相关表上使用触发器。

        对于 dotNet 应用程序的日志记录,使用 TraceSource 写入日志记录信息并使用自定义 TraceListener 写入数据库。真的不需要基类库之外的框架。

        【讨论】:

        • 感谢 Kristen,但我们需要记录一些业务操作,例如“产品价格设置为 10% 折扣”。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-09
        • 1970-01-01
        • 2016-05-04
        • 1970-01-01
        • 1970-01-01
        • 2013-05-25
        • 1970-01-01
        相关资源
        最近更新 更多