From 2e89a0717a60598904c92499adb7e01b2075fbb9 Mon Sep 17 00:00:00 2001 From: "Emma@Rory&" Date: Wed, 26 Jul 2023 21:02:50 +0200 Subject: MRU desktop start --- MatrixRoomUtils.Desktop/SentryService.cs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 MatrixRoomUtils.Desktop/SentryService.cs (limited to 'MatrixRoomUtils.Desktop/SentryService.cs') diff --git a/MatrixRoomUtils.Desktop/SentryService.cs b/MatrixRoomUtils.Desktop/SentryService.cs new file mode 100644 index 0000000..ed96697 --- /dev/null +++ b/MatrixRoomUtils.Desktop/SentryService.cs @@ -0,0 +1,29 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Sentry; + +namespace MatrixRoomUtils.Desktop; + +public class SentryService : IDisposable { + private IDisposable? _sentrySdkDisposable; + public SentryService(IServiceScopeFactory scopeFactory, ILogger logger) { + MRUDesktopConfiguration config = scopeFactory.CreateScope().ServiceProvider.GetRequiredService(); + if (config.SentryDsn is null) { + logger.LogWarning("Sentry DSN is not set, skipping Sentry initialisation"); + return; + } + _sentrySdkDisposable = SentrySdk.Init(o => { + o.Dsn = config.SentryDsn; + // When configuring for the first time, to see what the SDK is doing: + o.Debug = true; + // Set traces_sample_rate to 1.0 to capture 100% of transactions for performance monitoring. + // We recommend adjusting this value in production. + o.TracesSampleRate = 1.0; + // Enable Global Mode if running in a client app + o.IsGlobalModeEnabled = true; + }); + } + + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + public void Dispose() => _sentrySdkDisposable?.Dispose(); +} -- cgit 1.4.1