diff --git a/restless/resources.py b/restless/resources.py index 95a742a..10c3eee 100644 --- a/restless/resources.py +++ b/restless/resources.py @@ -1,6 +1,6 @@ from functools import wraps import sys - +import logging from .constants import OK, CREATED, ACCEPTED, NO_CONTENT from .data import Data from .exceptions import MethodNotImplemented, Unauthorized @@ -286,6 +286,7 @@ def handle(self, endpoint, *args, **kwargs): data = view_method(*args, **kwargs) serialized = self.serialize(method, endpoint, data) except Exception as err: + logging.error('Exception occurred', exc_info=True) return self.handle_error(err) status = self.status_map.get(self.http_methods[endpoint][method], OK) diff --git a/restless/tnd.py b/restless/tnd.py index 6c6618a..f8a0d02 100644 --- a/restless/tnd.py +++ b/restless/tnd.py @@ -5,6 +5,9 @@ import weakref import inspect +import logging + +logger = logging.getLogger(__name__) try: @@ -171,8 +174,8 @@ def handle(self, endpoint, *args, **kwargs): data = yield data serialized = self.serialize(method, endpoint, data) except Exception as err: + logger.exception('Unhandled exception occurred: %s', err) raise gen.Return(self.handle_error(err)) - status = self.status_map.get(self.http_methods[endpoint][method], OK) raise gen.Return(self.build_response(serialized, status=status))