move logging to method in ErrorHandler

This commit is contained in:
Raphael Deem 2017-02-13 18:07:35 -08:00
parent 75fca1b9c7
commit de6c646ee8
2 changed files with 14 additions and 3 deletions

View File

@ -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),

View File

@ -346,7 +346,11 @@ def serve(host, port, request_handler, error_handler, before_start=None,
# Register signals for graceful termination
if register_sys_signals:
for _signal in (SIGINT, SIGTERM):
try:
loop.add_signal_handler(_signal, loop.stop)
except NotImplementedError:
log.warn(('Sanic tried to use loop.add_signal_handler')
('but it is not implemented on this platform.'))
pid = os.getpid()
try: