Adding tracing via TraceSource and adding TraceSwitch for controlling the level of tracing using System.Diagnostics.Trace

Is there a reason that you don't just log the exception itself with the stack trace and everything.  This looks you might be applying an unnecessary transformation.  Also, if you want a particular ToString implementation you can make one for your own exceptions.  This would eliminate the need for this method altogether and perhaps be a more object oriented style design.