log4net和ELMAH有什么区别?

问题描述 投票:107回答:7

某些人正在使用ELMAH代替log4net。是什么使它更好?

我在an answer to Stack Overflow question How do I do logging in C#?中发现了关于ELMAH的信息>

某些人使用ELMAH代替log4net。什么使它更好?我在“堆栈溢出”问题的答案中找到了关于ELMAH的信息。

c# .net logging log4net elmah
7个回答
91
投票

ELMAH的目的是跟踪Web应用程序的错误和异常,并允许您通过许多不同的机制(SQL,RSS,Twitter,文件,电子邮件等)轻松记录或查看这些异常。如果您没有内置的异常处理,则ELMAH很可能会为您提供Web应用程序环境中的异常处理所需的信息。


111
投票

Log4Net


35
投票

主要区别在于ELMAH记录未处理的应用程序异常; log4net记录您告诉它记录的所有内容。您可以配置log4net来记录未处理的异常,但是ELMAH可以立即获取大量有用的信息。


5
投票

ELMAH通过创建一个HTTP模块来挂接到错误事件,然后进行日志记录。这很容易被不良的设计挫败和破坏。 Log4Net可能需要额外的前期工作,但是如果您使用AOP框架并将其应用于您的类甚至程序集,则只需很少的代码和工作即可获得更好的异常日志记录。

ELMAH仅在可以访问HttpContext时才起作用,而这在WCF服务中很难实现。因此,无论如何,您最终还是会在WCF中使用其他记录器。为什么不只使用一种更通用的解决方案。


4
投票

ELMAH:


1
投票

ELMAH


0
投票

ELMAH非常强大,但是在功能上也非常具体。它为您完成了很多工作,而我相信Log4Net需要you

© www.soinside.com 2019 - 2024. All rights reserved.