IAd*_*ter 108 .net c# logging log4net elmah
有些人使用的是ELMAH而不是log4net.是什么让它变得更好?
我在回答Stack Overflow问题时发现了ELMAH 如何登录C#?
Mik*_*nty 111
Log4Net是一个通用的日志记录框架,其API用于在您的应用程序中使用(web,console,dll等).
logger.Debug("Some low level debug message...");
logger.Info("Some basic info");
logger.Warn("Some business logic problem, but not critical");
logger.Error("An unexpected error");
Run Code Online (Sandbox Code Playgroud)
ELMAH是一个不显眼的IIS插件,专门用于记录Web应用程序中的异常.您不会在应用程序中看到对ELMAH的引用,它没有您与之交互的API.它使用模块和处理程序IIS扩展点来屏蔽行为.此外,它还有一个Web前端,用于查看Web应用程序中发生的错误.Log4Net没有前端,只有各种日志接收器(Appender)可以将日志消息发送到日志文件,系统日志服务器,数据库等.
Mar*_*man 91
ELMAH用于跟踪Web应用程序的错误和异常,并允许您通过许多不同的机制(SQL,RSS,Twitter,文件,电子邮件等)轻松地记录或查看这些异常.如果您没有内置的异常处理ELMAH很可能会在Web应用程序环境中的异常处理方面为您提供所需的内容.
Log4net也可以用于异常日志记录,但是您可能需要使用自己的处理程序来插入Web应用程序.如果您需要进行其他类型的信息记录,Log4net将会超越ELMAH,因为log4net是一个通用的日志记录框架.Log4net几乎可以在任何.NET应用程序中使用.
Jam*_*Ide 35
关键的区别在于ELMAH记录未处理的应用程序异常; log4net记录你告诉它记录的任何内容.您可以配置log4net来记录未处理的异常,但ELMAH会立即捕获大量有用的信息.
ELMAH的工作原理是创建一个挂钩到错误事件然后进行日志记录的httpmodule.糟糕的设计很容易挫败和打破这种情况.Log4Net可能需要预先进行额外的工作,但如果您使用AOP框架并将其应用于您的类甚至程序集,您可以用很少的代码和工作量来实现更好的异常日志记录.
ELMAH仅在可以访问HttpContext时才有效,而HttpContext在WCF服务中很难实现.所以你最终还是会在WCF中使用som eother logger.为什么不使用一种更普遍的解决方案呢?
| 归档时间: |
|
| 查看次数: |
37499 次 |
| 最近记录: |