Take a peek at Elmah (Error Logging Modules and Handlers) - 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.
Although geared for ASP.NET, it may give you some ideas regarding Winforms implementation of somthing similar.