put the error reporting logic in IoLogger.ReportException

This way you don't need to create an ExceptionLogger if you don't want