diff --git a/sanic/handlers.py b/sanic/handlers.py index 294695c5..6296eaea 100644 --- a/sanic/handlers.py +++ b/sanic/handlers.py @@ -46,7 +46,7 @@ class ErrorHandler: try: response = handler(request=request, exception=exception) except Exception: - log.error(format_exc()) + self.log(format_exc()) if self.debug: response_message = ( 'Exception raised in exception handler "{}" ' @@ -58,8 +58,15 @@ class ErrorHandler: return text('An error occurred while handling an error', 500) return response + def log(self, message, level='error'): + """ + Override this method in an ErrorHandler subclass to prevent + logging exceptions. + """ + getattr(log, level)(message) + def default(self, request, exception): - log.error(format_exc()) + self.log(format_exc()) if issubclass(type(exception), SanicException): return text( 'Error: {}'.format(exception), diff --git a/sanic/server.py b/sanic/server.py index 82af48ac..c7adac54 100644 --- a/sanic/server.py +++ b/sanic/server.py @@ -346,7 +346,6 @@ def serve(host, port, request_handler, error_handler, before_start=None, except NotImplementedError: log.warn('Sanic tried to use loop.add_signal_handler but it is' ' not implemented on this platform.') - pid = os.getpid() try: log.info('Starting worker [{}]'.format(pid))