Send criticals errors to Sentry

Fixes #77
This commit is contained in:
Julien Duponchelle 2015-03-02 09:05:32 +01:00
parent 46b0ead329
commit 16f6fe9d3b
2 changed files with 8 additions and 7 deletions

View File

@ -38,16 +38,17 @@ class CrashReport:
def __init__(self):
self._client = None
def capture_exception(self, request):
def capture_exception(self, request=None):
server_config = Config.instance().get_section_config("Server")
if server_config.getboolean("report_errors"):
if self._client is None:
self._client = raven.Client(CrashReport.DSN, release=__version__)
self._client.http_context({
"method": request.method,
"url": request.path,
"data": request.json,
})
if request is not None:
self._client.http_context({
"method": request.method,
"url": request.path,
"data": request.json,
})
try:
self._client.captureException()
except asyncio.futures.TimeoutError:

View File

@ -178,7 +178,7 @@ def main():
server.run()
except Exception as e:
log.critical("Critical error while running the server: {}".format(e), exc_info=1)
# TODO: send exception to Sentry
CrashReport.instance().capture_exception()
return
if __name__ == '__main__':