【问题标题】:Using log4net and where to implement it and using with elmah?使用 log4net 以及在哪里实现它并与 elmah 一起使用?
【发布时间】:2010-10-22 10:47:34
【问题描述】:

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

我决定看看 log4net。

我有 2 个客户端(wpf 和 asp.net),它们都共享业务逻辑。

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

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

有人用过 log4net 和 elmah,有没有办法让他们共享同一个数据库表??

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

或者也许有可能让 log4net 也保存 Stacktrace 并完全替换 elmah??

任何cmets都非常感谢

【问题讨论】:

    标签: .net asp.net logging log4net elmah


    【解决方案1】:

    它们用于两种不同的目的。

    Elmah 用于捕获和存储您没想到的异常。它还提供了一些前端(网页、RSS、电子邮件警报器)来传递异常。

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

    因此,您应该同时使用两者,而不是其中一个。

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      这是我的 10 位。

      【讨论】:

        猜你喜欢
        • 2017-08-05
        • 1970-01-01
        • 2020-03-19
        • 2019-03-05
        • 2016-09-24
        • 1970-01-01
        • 1970-01-01
        • 2020-01-18
        • 1970-01-01
        相关资源
        最近更新 更多