ASP.NET应用程序的日志框架

时间:2010-12-20 17:46:16

标签: asp.net oracle logging

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

1 -Log4Net

2 - 记录应用程序块

3 - Elmah

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

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

6 个答案:

答案 0 :(得分:3)

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

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

我可能会使用log4net进行日志记录并使用ELMAH记录异常。它可以手动记录未处理的异常,只需调用ELMAH即可记录您在应用程序中捕获和处理的任何异常。这可能看起来像双重记录(它是:-))。但是,当您的应用程序出现意外情况时,使用ELMAH日志非常有价值。

我听过关于NLog project的好话,但我自己没有用过它。 log4net似乎有点复杂,但确实有额外的好处,可以自动添加上下文信息来记录消息(有点像ELMAH)。

答案 1 :(得分:1)

我对不同框架的看法:

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

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

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

  4. 我猜我的意见基于我的意见我建议你做什么......

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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

HTH。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

要登录dotNet应用程序,请使用TraceSource编写日志信息和自定义TraceListener以写入数据库。实际上不需要基类库之外的框架。