[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.
"""
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):
"""Gracefully quit Red.

View File

@@ -1,6 +1,8 @@
import asyncio
import logging
from raven import Client
from raven.handlers.logging import SentryHandler
from raven_aiohttp import AioHttpTransport
from redbot.core import __version__
@@ -19,6 +21,7 @@ class SentryManager:
release=__version__,
include_paths=["redbot"],
enable_breadcrumbs=False,
transport=AioHttpTransport,
)
self.handler = SentryHandler(self.client)
self.logger = logger
@@ -30,3 +33,9 @@ class SentryManager:
def disable(self):
"""Disable error reporting for Sentry."""
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()