[sentry] use raven-aiohttp (#1967)

This commit is contained in:
Caleb Johnson 2018-08-04 01:44:58 -04:00 committed by Toby Harradine
parent e3bff7e87c
commit cf7cafc261
3 changed files with 17 additions and 0 deletions

View File

@ -295,6 +295,13 @@ class Red(RedBase, discord.AutoShardedClient):
You're welcome Caleb. You're welcome Caleb.
""" """
async def logout(self):
"""Logs out of Discord and closes all connections."""
if self._sentry_mgr:
await self._sentry_mgr.close()
await super().logout()
async def shutdown(self, *, restart: bool = False): async def shutdown(self, *, restart: bool = False):
"""Gracefully quit Red. """Gracefully quit Red.

View File

@ -1,6 +1,8 @@
import asyncio
import logging import logging
from raven import Client from raven import Client
from raven.handlers.logging import SentryHandler from raven.handlers.logging import SentryHandler
from raven_aiohttp import AioHttpTransport
from redbot.core import __version__ from redbot.core import __version__
@ -19,6 +21,7 @@ class SentryManager:
release=__version__, release=__version__,
include_paths=["redbot"], include_paths=["redbot"],
enable_breadcrumbs=False, enable_breadcrumbs=False,
transport=AioHttpTransport,
) )
self.handler = SentryHandler(self.client) self.handler = SentryHandler(self.client)
self.logger = logger self.logger = logger
@ -30,3 +33,9 @@ class SentryManager:
def disable(self): def disable(self):
"""Disable error reporting for Sentry.""" """Disable error reporting for Sentry."""
self.logger.removeHandler(self.handler) self.logger.removeHandler(self.handler)
loop = asyncio.get_event_loop()
loop.create_task(self.close())
async def close(self):
"""Wait for the Sentry client to send pending messages and shut down."""
await self.client.remote.get_transport().close()

View File

@ -8,3 +8,4 @@ pyyaml==3.12
fuzzywuzzy[speedup]<=0.16.0 fuzzywuzzy[speedup]<=0.16.0
Red-Trivia>=1.1.1 Red-Trivia>=1.1.1
async-timeout<3.0.0 async-timeout<3.0.0
raven-aiohttp==0.7.0