Properly pass exceptions to Sentry

This commit is contained in:
Ske 2020-05-05 16:42:14 +02:00
parent 0f64086c75
commit a052c8331c

View File

@ -97,14 +97,16 @@ namespace PluralKit.Bot
private async Task HandleError<T>(IEventHandler<T> handler, T evt, ILifetimeScope serviceScope, Exception exc) private async Task HandleError<T>(IEventHandler<T> handler, T evt, ILifetimeScope serviceScope, Exception exc)
where T: DiscordEventArgs where T: DiscordEventArgs
{ {
_logger.Error(exc, "Exception in bot event handler"); // Make this beforehand so we can access the event ID for logging
var sentryEvent = new SentryEvent(exc);
_logger.Error(exc, "Exception in bot event handler (Sentry ID: {SentryEventId})", sentryEvent.EventId);
var shouldReport = exc.IsOurProblem(); var shouldReport = exc.IsOurProblem();
if (shouldReport) if (shouldReport)
{ {
// Report error to Sentry // Report error to Sentry
// This will just no-op if there's no URL set // This will just no-op if there's no URL set
var sentryEvent = new SentryEvent();
var sentryScope = serviceScope.Resolve<Scope>(); var sentryScope = serviceScope.Resolve<Scope>();
SentrySdk.CaptureEvent(sentryEvent, sentryScope); SentrySdk.CaptureEvent(sentryEvent, sentryScope);