Не пробовал, но
www.postsharp.net/aspects/intercept-event
вообще, все события, на которые есть подписки, можно обработать стандартным аспектом логирования. все события, на которые подписка необязательна, можно вынести в базовый абстрактный класс и сделать обработчики виртуальными и реализовать как пустые.
Вообще задача логирования событий ничем не отличается от задачи логирования вызовов метода. Здесь работает концепция аспектно-ориентированного программирования.
ru.wikipedia.org/wiki/%D0%90%D1%81%D0%BF%D0%B5%D0%...
надеюсь, что поможет.
Бесплатных AOP-фреймворков тоже хватает, но у них немного другие принципы работы