Enterprise Library Logging Application Block
The Enterprise Library Logging Application Block simplifies the implementation of common logging functions. You can use the Logging Application Block to write information to a variety of locations:
· The event log
· An e-mail message
· A database
· A message queue
· A text file
· A Windows® Management Instrumentation (WMI) event
· Custom locations using application block extension points
Features
· Multiple targets can be configured
· Enterprise Library Configuration Console available for easy configuration
· Large number of options to be configured may make it a bit daunting to start with
· Invasive – requires code change to implement logging
· Logs all kinds of events/information, not just for error logging
· Formatters available for formatting the event message
· Log filters allow filtering of log messages
· Facilities for WCF integration
· It will take you a bit to get up to speed with Enterprise Library – it’s not a 5 second install.
· There’s a lot of configuration to do in the app.config/web.config file just to make it work. That said, once you understand it, it easier on other projects.
· You must implement the Logging Block, not just the Exception Handling Block to log the information somewhere (event log, flat file, database, etc.)
· It’s not just for logging exceptions. For example, you may want to get log events for when a user logs in or logs out of an application.
· You can use the configuration file to change how logging works depending on the environment (i.e. Log exceptions for Production, log everything for Dev, etc.).
· It’s not just for web, but for all kinds of applications.
ELMAH
ELMAH (Error Logging Modules and Handlers) is an application-wide error logging facility that is completely pluggable. It can be dynamically added to a running ASP.NET web application, or even all ASP.NET web applications on a machine, without any need for re-compilation or re-deployment.
Once ELMAH has been dropped into a running web application and configured appropriately, you get the following facilities without changing a single line of your code:
Logging of nearly all unhandled exceptions.
A web page to remotely view the entire log of recoded exceptions.
A web page to remotely view the full details of any one logged exception, including coloured stack traces.
In many cases, you can review the original yellow screen of death that ASP.NET generated for a given exception, even with customErrors mode turned off.
An e-mail notification of each error at the time it occurs.
An RSS feed of the last 15 errors from the log.
Runs using the Apache License (open source)
Comparison with ELMAH
Feature/s |
Logging Application Block |
ELMAH |
Scope |
|
|
Targets supported |
|
|
Pluggable? |
No. Requires careful configuration and implementation in code |
Fully pluggable out of the box, requires only configuration for basic features |
Configuration |
|
XML configuration in the web.config |
Intrusiveness |
Requires code change for implementation |
No code change required for basic features |
Extensibility |
|
|
Scalability |
|
Requires more research |
Summary
The Logging Application block beats ELMAH hands down in comprehensiveness. It can be used for logging all kinds of messages from all layers of various kinds of applications including ASP.NET, windows forms, WCF services etc. It can also be used for tracing for performance and debugging purposes.
On the other hand ELMAH is a light-weight framework for logging exceptions in ASP.NET applications.
ELMAH is very easy to configure and use. It is fully pluggable. Whereas implementation of the Logging Application block requires careful planning, configuration and is intrusive as it requires changes to code wherever logging is required.
One of the biggest benefits of the Enterprise Library is that it works in tandem with the Exception Handling block to implement a consistent strategy for processing exceptions in all the architectural tiers of an enterprise application including WCF Services.
While ELMAH is perfect for ASP.NET applications, for enterprise applications the Enterprise Library fulfils the comprehensiveness required.