LOGGING APPLICATION BLOCK (LAB) PRE-RELEASE
https://github.com/MicrosoftArchive/enterprise-library
Summary: The Logging Application Block enables you to decouple your logging functionality from your application code. The block can route log entries synchronously or asynchronously to a Windows Event Log, a database, or a flat file. It can also generate an e-mail message containing the logging information or a message you can route through Windows Message Queuing (using a distributor service provided with the block). You can create a custom provider that sends the log entry to any other location or executes some other action.
Microsoft patterns & practices http://microsoft.com/practices