Visual Studio is a great IDE with a great Debugger. It currently provides one of the best debugging experiences out there. It is extensible and customizable. For example, it provides Attributes for customizing how to display and visualize objects during a debugging session. By utilizing these attributes you can be more productive while debugging.
Log4Net is a cool, stable, fully featured, highly configurable, highly customizable and open source logging framework for .Net. One of its powerful features is the ability to write logs to multiple targets, by using the notation of Appenders.
This is how I've implemented a Failover mechanism in Log4net.
As part of my new year resolutions, I've decided to put more effort in learning code generation techniques. This is the first blog post in a series exploring code generation.