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): def __init__(self):
self._client = None self._client = None
def capture_exception(self, request): def capture_exception(self, request=None):
server_config = Config.instance().get_section_config("Server") server_config = Config.instance().get_section_config("Server")
if server_config.getboolean("report_errors"): if server_config.getboolean("report_errors"):
if self._client is None: if self._client is None:
self._client = raven.Client(CrashReport.DSN, release=__version__) self._client = raven.Client(CrashReport.DSN, release=__version__)
self._client.http_context({ if request is not None:
"method": request.method, self._client.http_context({
"url": request.path, "method": request.method,
"data": request.json, "url": request.path,
}) "data": request.json,
})
try: try:
self._client.captureException() self._client.captureException()
except asyncio.futures.TimeoutError: except asyncio.futures.TimeoutError:

View File

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