Otra alternativa que tienes es usar los building blocks que te faciliten esa tarea y centres tu atención en otras partes de tu aplicación. Te sugiero que revises la documentación de
"Exception Handling Application Block" y
"Logging and Instrumentation Application Block", para ver si te conviene o no usarlos. IMHO creo que te facilitará las cosas para lo que quieres hacer.
Saludos