Enterprise Library 3.1
*Populating and raising events from code
*Populating a log message with additional context information
*Tracing activities and propagating context information
*Checking filter status before constructing log messages.
*Configuring options for trace listeners
*Directing different event types to different trace listeners
*Configuring log filters
*Configure logging to be performed from a central location
*Creating a custom trace listener
log4net is a tool to help the programmer output log statements to a variety of output targets. In case of problems with an application, it is helpful to enable logging so that the problem can be located. With log4net it is possible to enable logging at runtime without modifying the application binary. The log4net package is designed so that log statements can remain in shipped code without incurring a high performance cost. It follows that the speed of logging (or rather not logging) is crucial.
At the same time, log output can be so voluminous that it quickly becomes overwhelming. One of the distinctive features of log4net is the notion of hierarchical loggers. Using these loggers it is possible to selectively control which log statements are output at arbitrary granularity.
log4net is designed with two distinct goals in mind: speed and flexibility