使用log4net以及在哪里实现它并与elmah一起使用?

14 .net asp.net logging log4net elmah

有没有人有log4net的经验,我一直在看elmah这是伟大的.但我想要更多的控制,即不仅在asp.net中使用日志记录,而且在wpf中也使用日志记录.

Anway我决定看看log4net.

我有两个共享业务逻辑的客户端(wpf和asp.net).

我应该在业务逻辑和客户端中提升事件吗?

我假设业务逻辑将使用app.config/web.config(业务逻辑在另一层 - 一个类项目)

有没有人和elmah一起使用log4net,无论如何你可以让他们共享同一个db表吗?

log4net在我看来是最终的日志框架,但是elmah具有提交所有SERVER变量和堆栈跟踪等的优势

或者也许它可以获得log4net来保存Stacktrace并完全取代elmah?

任何评论都非常感谢

zvo*_*kov 25

它们用于两个不同的目的.

Elmah用于捕获和存储您不期望的异常.它还提供了一些用于传递异常的前端(网页,RSS,电子邮件警报器).

另一方面,Log4net用于记录您可能知道可能发生的事件(包括由异常引起的错误)(否则您将没有try/catch块).

因此,您应该使用两者,而不是一个或另一个.

要回答您的具体问题,您可以使用log4net来记录异常的堆栈跟踪,但通常不应记录您记录的每个调试消息的堆栈跟踪.也可以记录服务器变量和其他特定于Web的内容,但需要一些您不想做的自定义编码.


Dil*_*e-O 2

我已经使用 log4net 一段时间了,我主要让数据层和业务层完成所有错误日志记录。但是,如果您的表示层对对象进行了大量的“计算”,那么在那里记录适当的信息也是值得的。

您可以将 log4net 配置为将其设置存储在 .config 文件中,或者存储在其自己的单独配置文件中。单独文件的优点是,如果您需要动态切换日志记录模式,可以在单独的 .config 文件中执行此操作,而不必让 IIS 触发站点的应用程序刷新。

我还没用过 ELMAH,但它看起来确实很不错。我认为更重要的是,它提供了一种轻松插入现有应用程序的方法。然而,log4net 确实提供了一种更简单的方法来获取更详细和更广泛的日志信息,因为您有很多配置选项可供使用。

如果您的应用程序不需要细粒度的日志记录,我会选择 ELMAH。如果您想采用更详细的方法,请花时间将 log4net 融入您的应用程序中。

这是我的10位。