2010-12-20 54 views
3

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

1 -Log4Net

2 - 记录应用程序块

3 - ELMAH

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

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

+0

请参阅answeres http://stackoverflow.com/questions/710863/log4net-vs-nlog?answertab=votes#tab-top – 2012-02-21 21:08:20

回答

3

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

在工作中,我在几个项目上使用log4net。它是稳定的,高性能的和可扩展的,我们从来没有任何问题。

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

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

+0

OP没有理由不能使用ELMAH来记录错误,比如log4net记录与错误无关的信息。 – 2010-12-20 17:54:39

+0

@斯科特,当然不是,那实际上也是我自己做的事情。补充说,以避免混淆。 – driis 2010-12-20 17:56:23

1

我对不同的框架意见:

  1. log4net的 - 爱它。这是我经常使用的日志记录系统。一切都很容易开始。它也非常灵活,可以让你记录任何事情。

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

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

而且我根据我的意见,我会建议你做猜测...

如果没有,使用log4net的创造,你可以在你的应用程序中使用的适配器,使记录简单。

+0

谢谢贾斯汀。我也喜欢log4Net,应用程序块也不错。 – Ewerton 2010-12-20 18:08:33

0

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

也就是说,你想记录的东西(插入,更新,删除)可以只使用触发器进行记录,这个解决方案可能取决于你的设置执行得更好。

0

我个人总是创建一个包装器,所以我有自己的ILog实现,可以与您选择的任何一个配合使用。这使得交换或我们的实现变得很容易。

我试过#2,但它有点痛苦; #1对我们来说算得很好,但是我们没有为此付出,只是简单地进行了自定义日志记录。我所知道的关于#3的是,我知道有人在他们的组织中执行它时遇到了麻烦。不知道为什么,但它实际上看起来很有趣。我认为你不能亲自出错。它部分取决于你喜欢的API。

HTH。

0

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

0

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

对于登录dotNet应用程序使用TraceSource写入日志信息和自定义TraceListener写入数据库。真的不需要超出基类库的框架。

+0

感谢克里斯汀,但我们需要记录一些商业行为,例如“价格os产品设置为10%折扣”。 – Ewerton 2010-12-20 18:07:09