aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Sebastiaan Zeeff <[email protected]>2020-05-05 23:53:39 +0200
committerGravatar GitHub <[email protected]>2020-05-05 23:53:39 +0200
commit007f771b9cdf9de608920feea7f0e4a98b61fcab (patch)
tree8c648f958f20ea25173cfa2acf8e786b606caec9
parentMerge pull request #925 from Savant-Dev/antimalware (diff)
parentMerge 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.py12
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}.")