Improve tracebacks on exceptions
Use failure.Failure to recover our failure, which will give us a useful stacktrace, unlike the rethrown exception.
This commit is contained in:
parent
79eba878a7
commit
6be01f599b
|
@ -28,6 +28,7 @@ from canonicaljson import (
|
||||||
)
|
)
|
||||||
|
|
||||||
from twisted.internet import defer
|
from twisted.internet import defer
|
||||||
|
from twisted.python import failure
|
||||||
from twisted.web import server, resource
|
from twisted.web import server, resource
|
||||||
from twisted.web.server import NOT_DONE_YET
|
from twisted.web.server import NOT_DONE_YET
|
||||||
from twisted.web.util import redirectTo
|
from twisted.web.util import redirectTo
|
||||||
|
@ -131,12 +132,17 @@ def wrap_request_handler(request_handler, include_metrics=False):
|
||||||
version_string=self.version_string,
|
version_string=self.version_string,
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.exception(
|
# failure.Failure() fishes the original Failure out
|
||||||
"Failed handle request %s.%s on %r: %r",
|
# of our stack, and thus gives us a sensible stack
|
||||||
|
# trace.
|
||||||
|
f = failure.Failure()
|
||||||
|
logger.error(
|
||||||
|
"Failed handle request %s.%s on %r: %r: %s",
|
||||||
request_handler.__module__,
|
request_handler.__module__,
|
||||||
request_handler.__name__,
|
request_handler.__name__,
|
||||||
self,
|
self,
|
||||||
request
|
request,
|
||||||
|
f.getTraceback().rstrip(),
|
||||||
)
|
)
|
||||||
respond_with_json(
|
respond_with_json(
|
||||||
request,
|
request,
|
||||||
|
|
Loading…
Reference in New Issue