diff --git a/src/NzbDrone.Common/Instrumentation/Sentry/SentryCleanser.cs b/src/NzbDrone.Common/Instrumentation/Sentry/SentryCleanser.cs index 62bff132b..a56e57376 100644 --- a/src/NzbDrone.Common/Instrumentation/Sentry/SentryCleanser.cs +++ b/src/NzbDrone.Common/Instrumentation/Sentry/SentryCleanser.cs @@ -11,26 +11,41 @@ public static SentryEvent CleanseEvent(SentryEvent sentryEvent) { try { - sentryEvent.Message.Message = CleanseLogMessage.Cleanse(sentryEvent.Message.Message); + if (sentryEvent.Message is not null) + { + sentryEvent.Message.Formatted = CleanseLogMessage.Cleanse(sentryEvent.Message.Formatted); + sentryEvent.Message.Message = CleanseLogMessage.Cleanse(sentryEvent.Message.Message); + sentryEvent.Message.Params = sentryEvent.Message.Params?.Select(x => CleanseLogMessage.Cleanse(x switch + { + string str => str, + _ => x.ToString() + })).ToList(); + } - if (sentryEvent.Fingerprint != null) + if (sentryEvent.Fingerprint.Any()) { var fingerprint = sentryEvent.Fingerprint.Select(x => CleanseLogMessage.Cleanse(x)).ToList(); sentryEvent.SetFingerprint(fingerprint); } - if (sentryEvent.Extra != null) + if (sentryEvent.Extra.Any()) { - var extras = sentryEvent.Extra.ToDictionary(x => x.Key, y => (object)CleanseLogMessage.Cleanse((string)y.Value)); + var extras = sentryEvent.Extra.ToDictionary(x => x.Key, y => (object)CleanseLogMessage.Cleanse(y.Value as string)); sentryEvent.SetExtras(extras); } - foreach (var exception in sentryEvent.SentryExceptions) + if (sentryEvent.SentryExceptions is not null) { - exception.Value = CleanseLogMessage.Cleanse(exception.Value); - foreach (var frame in exception.Stacktrace.Frames) + foreach (var exception in sentryEvent.SentryExceptions) { - frame.FileName = ShortenPath(frame.FileName); + exception.Value = CleanseLogMessage.Cleanse(exception.Value); + if (exception.Stacktrace is not null) + { + foreach (var frame in exception.Stacktrace.Frames) + { + frame.FileName = ShortenPath(frame.FileName); + } + } } } } diff --git a/src/NzbDrone.Common/Instrumentation/Sentry/SentryTarget.cs b/src/NzbDrone.Common/Instrumentation/Sentry/SentryTarget.cs index 45cc679c4..4b066f15f 100644 --- a/src/NzbDrone.Common/Instrumentation/Sentry/SentryTarget.cs +++ b/src/NzbDrone.Common/Instrumentation/Sentry/SentryTarget.cs @@ -99,9 +99,6 @@ public SentryTarget(string dsn) o.Dsn = dsn; o.AttachStacktrace = true; o.MaxBreadcrumbs = 200; - o.SendDefaultPii = false; - o.Debug = false; - o.DiagnosticLevel = SentryLevel.Debug; o.Release = BuildInfo.Release; o.BeforeSend = x => SentryCleanser.CleanseEvent(x); o.BeforeBreadcrumb = x => SentryCleanser.CleanseBreadcrumb(x); diff --git a/src/NzbDrone.Common/Radarr.Common.csproj b/src/NzbDrone.Common/Radarr.Common.csproj index c3f625548..37e3d673e 100644 --- a/src/NzbDrone.Common/Radarr.Common.csproj +++ b/src/NzbDrone.Common/Radarr.Common.csproj @@ -10,7 +10,7 @@ - +