added a top level catch throwable to handle the odd case where the error logger throws an exception