diff options
author | 2020-05-05 23:53:39 +0200 | |
---|---|---|
committer | 2020-05-05 23:53:39 +0200 | |
commit | 007f771b9cdf9de608920feea7f0e4a98b61fcab (patch) | |
tree | 8c648f958f20ea25173cfa2acf8e786b606caec9 | |
parent | Merge pull request #925 from Savant-Dev/antimalware (diff) | |
parent | Merge branch 'master' into bug/backend/911/log-listener-exceptions (diff) |
Merge pull request #919 from python-discord/bug/backend/911/log-listener-exceptions
Log unhandled errors from event listeners
-rw-r--r-- | bot/bot.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/bot/bot.py b/bot/bot.py index 6dd5ba896..49fac27e8 100644 --- a/bot/bot.py +++ b/bot/bot.py @@ -7,6 +7,7 @@ from typing import Optional import aiohttp import discord from discord.ext import commands +from sentry_sdk import push_scope from bot import DEBUG_MODE, api, constants from bot.async_stats import AsyncStatsClient @@ -155,3 +156,14 @@ class Bot(commands.Bot): gateway event before giving up and thus not populating the cache for unavailable guilds. """ await self._guild_available.wait() + + async def on_error(self, event: str, *args, **kwargs) -> None: + """Log errors raised in event listeners rather than printing them to stderr.""" + self.stats.incr(f"errors.event.{event}") + + with push_scope() as scope: + scope.set_tag("event", event) + scope.set_extra("args", args) + scope.set_extra("kwargs", kwargs) + + log.exception(f"Unhandled exception in {event}.") |