I need to take an existing winforms application and drop into an event tracing mode, with hopefully as little friction as possible.
I w
How about an observer pattern? Create an EventLogger class with a bunch of overloaded Log methods (one for each event method signature) that do the logging. Instantiate it on application start and subscribe it to each of the UI events.
It should even be possible to do the subscribing automatically with reflection - though I would think it is more effort to set that up than to do it manually for any reasonably sized application. Also you would still have to ensure that your EventLogger class has a Log method for every possible event handler method signature.
How many different control types do you have? If you only have a handful of control types that you are looking to trace with, it may be worthwhile to subclass them and do a find and replace on your project to change them to your subclass. This should only take a minute or two.
In your subclassed controls, you could override a small section of the methods, adding tracing before calling the base method.