Sentry 0.0.1-preview1

Prefix Reserved
This is a prerelease version of Sentry.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Sentry --version 0.0.1-preview1                
NuGet\Install-Package Sentry -Version 0.0.1-preview1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sentry" Version="0.0.1-preview1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Sentry --version 0.0.1-preview1                
#r "nuget: Sentry, 0.0.1-preview1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Sentry as a Cake Addin
#addin nuget:?package=Sentry&version=0.0.1-preview1&prerelease

// Install Sentry as a Cake Tool
#tool nuget:?package=Sentry&version=0.0.1-preview1&prerelease                

Initialize the SDK:

void Main() 
{
    using (SentrySdk.Init("dsn"))
    {
        // App code
    }
}

The SDK by default will watch for unhandled exceptions in your app. If the DSN is not explicitly passed by parameter to Init, the SDK will try to locate it via environment variable SENTRY_DSN.

To configure advanced settings, for example a proxy server:

void Main() 
{
    using (SentrySdk.Init(o =>
    {
        o.Dsn = new Dsn("dsn");
        o.Http(h =>
        {
            h.Proxy = new WebProxy("https://localhost:3128");
        });
    }))
    {
        // App code
    }
}

Capture an exception:

try
{
    throw null;
}
catch (Exception e)
{
    SentrySdk.CaptureException(e);
}

Internals/Testability

It's often the case we don't want to couple our code with static class like SentrySdk, especially to allow our code to be testable. If that's your case, you can use 2 abstractions:

  • ISentryClient
  • IHub

The ISentryClient is responsible to queueing the event to be sent to Sentry and abstracting away the internal transport. The IHub on the other hand, holds a client and the current scope. It in fact also implements ISentryClient and is able to dispatch calls to the right client depending on the current scope.

In order to allow different events hold different contextual data, you need to know in which scope you are in. That's the job of the Hub. It holds the scope management as well as a client.

If all you are doing is sending events, without modification/access to the current scope, then you depend on ISentryClient. If on the other hand you would like to have access to the current scope by configuring it or binding a different client to it, etc. You'd depend on IHub.

An example using IHub for testability is SentryLogger and its unit tests SentryLoggerTests.
SentryLogger depends on IHub because it does modify the scope (through AddBreadcrumb). In case it only sent events, it should instead depend on ISentryClient

Compatibility

The packages target .NET Standard 2.0. That means it is compatible with the following versions or newer:

  • .NET Framework 4.6.1
  • .NET Core 2.0
  • Mono 5.4
  • Xamarin.Android 8.0
  • Xamarin.Mac 3.8
  • Xamarin.iOS 10.14
  • Universal Windows Platform 10.0.16299

Of those, we've tested (we run our unit/integration tests) against:

  • .NET Framework 4.6.2 on Windows (AppVeyor)
  • Mono 5.12 macOS and Linux (Travis-CI)
  • .NET Core 2.0 Windows (AppVeyor), macOS and Linux (Travis-CI)
  • .NET Core 2.1 Windows (AppVeyor), macOS and Linux (Travis-CI)
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (78)

Showing the top 5 NuGet packages that depend on Sentry:

Package Downloads
Sentry.Extensions.Logging

Official Microsoft.Extensions.Logging integration for Sentry - Open-source error tracking that helps developers monitor and fix crashes in real time.

Sentry.Serilog

Official Serilog integration for Sentry - Open-source error tracking that helps developers monitor and fix crashes in real time.

Sentry.NLog

Official NLog integration for Sentry - Open-source error tracking that helps developers monitor and fix crashes in real time.

Sentry.DiagnosticSource

Official Diagnostic.Listener integration for Sentry - Open-source error tracking that helps developers monitor and fix crashes in real time. Note: This package is not needed when using Sentry with .NET Core 3 or higher.

VisioForge.DotNet.Core

VisioForge .Net products for video capture, editing and playback (Video Capture SDK, Media Player SDK, Video Edit SDK). Core package.

GitHub repositories (4)

Showing the top 4 popular GitHub repositories that depend on Sentry:

Repository Stars
files-community/Files
A modern file manager that helps users organize their files and folders.
ppy/osu
rhythm is just a *click* away!
Sonarr/Sonarr
Smart PVR for newsgroup and bittorrent users.
Radarr/Radarr
Movie organizer/manager for usenet and torrent users.
Version Downloads Last updated
5.0.0-alpha.1 277 11/25/2024
5.0.0-alpha.0 98 11/24/2024
4.13.0 218,917 11/5/2024
4.12.2 31,343 11/2/2024
4.12.1 416,270 10/10/2024
4.12.1-segv1 677 11/1/2024
4.12.0 161,806 10/2/2024
4.11.0 359,518 9/22/2024
4.10.2 731,711 8/21/2024
4.10.1 127,716 8/16/2024
4.10.0 49,319 8/14/2024
4.9.0 1,020,329 7/11/2024
4.9.0-sync.collection.2 204 7/30/2024
4.9.0-sync.collection.1 97 7/30/2024
4.8.1 220,369 7/2/2024
4.8.0 189,946 6/26/2024
4.7.0 882,990 5/27/2024 4.7.0 is deprecated.
4.6.2 399,128 5/14/2024 4.6.2 is deprecated.
4.6.0 91,778 5/9/2024 4.6.0 is deprecated.
4.5.0 267,585 4/30/2024 4.5.0 is deprecated.
4.4.0 460,395 4/12/2024 4.4.0 is deprecated.
4.3.0 145,490 4/10/2024 4.3.0 is deprecated.
4.2.1 791,311 3/12/2024 4.2.1 is deprecated.
4.2.0 41,947 3/11/2024 4.2.0 is deprecated.
4.1.2 1,097,189 2/20/2024 4.1.2 is deprecated.
4.1.1 181,888 2/14/2024 4.1.1 is deprecated.
4.1.0 166,429 2/9/2024 4.1.0 is deprecated.
4.0.3 71,539 2/7/2024 4.0.3 is deprecated.
4.0.2 67,196 2/6/2024 4.0.2 is deprecated.
4.0.1 40,629 2/5/2024 4.0.1 is deprecated.
4.0.0 108,411 2/1/2024 4.0.0 is deprecated.
4.0.0-beta.9 1,125 1/30/2024
4.0.0-beta.8 17,480 1/11/2024
4.0.0-beta.7 7,894 1/5/2024
4.0.0-beta.6 16,519 12/13/2023
4.0.0-beta.5 2,524 12/12/2023
4.0.0-beta.4 19,462 12/5/2023
4.0.0-beta.3 590 12/2/2023
4.0.0-beta.2 4,738 11/23/2023
4.0.0-beta.1 1,035 11/19/2023
4.0.0-beta.0 570 11/17/2023
4.0.0-alpha.0 5,867 11/9/2023
3.41.4 1,071,638 1/23/2024
3.41.3 1,502,273 11/29/2023
3.41.2 323,569 11/23/2023
3.41.1 72,983 11/22/2023
3.41.0 901,958 11/8/2023
3.40.1 770,090 10/12/2023
3.40.0 138,076 10/10/2023
3.40.0-beta.0 14,735 9/21/2023
3.39.1 1,460,704 9/12/2023
3.39.0 213,158 9/7/2023
3.36.0 607,289 8/22/2023
3.35.1 247,114 8/16/2023
3.35.0 171,232 8/8/2023 3.35.0 is deprecated.
3.34.0 1,110,440 7/13/2023
3.33.1 1,309,234 6/13/2023
3.33.0 1,154,011 5/22/2023
3.32.0 26,510 5/22/2023
3.31.0 752,815 5/2/2023
3.30.0 1,171,201 4/11/2023
3.29.1 1,776,383 3/11/2023
3.29.0 238,768 3/6/2023
3.28.1 1,370,159 2/10/2023
3.28.0 74,442 2/8/2023
3.27.1 330,314 2/3/2023
3.27.0 145,639 2/1/2023
3.26.2 682,710 1/24/2023
3.26.1 275,620 1/17/2023
3.26.0 360,064 1/13/2023
3.25.0 1,180,078 12/23/2022
3.24.1 341,858 12/16/2022
3.24.0 1,672,186 11/18/2022
3.23.1 894,338 10/31/2022
3.23.0 101,537 10/27/2022
3.22.0 1,384,431 10/7/2022
3.21.0 1,704,746 9/2/2022
3.20.1 1,679,704 7/26/2022
3.19.0 949,666 6/28/2022
3.18.0 609,406 6/15/2022
3.17.1 1,421,868 5/8/2022
3.17.0 145,945 5/3/2022
3.16.0 973,723 4/7/2022
3.15.0 984,309 3/15/2022
3.14.1 899,234 2/18/2022
3.14.0 208,387 2/14/2022
3.13.0 1,480,259 1/11/2022
3.12.3 1,058,877 12/19/2021
3.12.2 83,247 12/15/2021
3.12.1 365,624 12/6/2021
3.12.0 293,448 11/23/2021
3.12.0-alpha.1 5,968 11/7/2021
3.11.1 675,660 11/5/2021
3.11.0 152,569 11/2/2021
3.10.0 646,022 10/15/2021
3.9.4 972,157 9/29/2021
3.9.3 171,402 9/21/2021
3.9.2 235,758 9/10/2021
3.9.1 14,424 9/9/2021
3.9.0 304,924 8/27/2021
3.8.3 820,086 7/25/2021
3.8.2 141,370 7/17/2021
3.8.1 27,823 7/15/2021
3.8.0 120,398 7/14/2021
3.7.0 135,341 7/10/2021
3.6.1 181,121 7/2/2021
3.6.0 236,183 6/23/2021
3.6.0-alpha.2 648 6/18/2021
3.6.0-alpha.1 1,260 6/11/2021
3.5.0 477,352 6/7/2021 3.5.0 is deprecated because it has critical bugs.
3.4.0 151,826 5/31/2021 3.4.0 is deprecated because it has critical bugs.
3.4.0-beta.0 332 5/27/2021 3.4.0-beta.0 is deprecated because it has critical bugs.
3.3.5-beta.0 2,570 5/13/2021
3.3.4 761,239 4/26/2021
3.3.3 9,136 4/23/2021
3.3.2 24,790 4/23/2021
3.3.1 575,773 4/5/2021
3.3.0 33,996 4/3/2021
3.2.0 132,172 3/26/2021
3.1.0 385,855 3/10/2021
3.0.8 70,897 3/4/2021
3.0.7 241,147 2/20/2021
3.0.6 102,089 2/14/2021
3.0.5 70,521 2/9/2021
3.0.4 31,874 2/8/2021
3.0.3 79,576 2/3/2021
3.0.2 22,554 2/3/2021
3.0.1 142,647 1/29/2021
3.0.0 40,820 1/28/2021
3.0.0-beta.0 5,602 1/20/2021
3.0.0-alpha.11 492 1/15/2021
3.0.0-alpha.10 63,748 1/10/2021
3.0.0-alpha.9 2,261 12/29/2020
3.0.0-alpha.8 4,541 12/25/2020
3.0.0-alpha.7 2,994 12/16/2020
3.0.0-alpha.6 3,686 11/30/2020
3.0.0-alpha.5 3,292 11/21/2020
3.0.0-alpha.4 2,454 11/2/2020
3.0.0-alpha.3 1,802 10/29/2020
3.0.0-alpha.2 843 10/21/2020
3.0.0-alpha.1 6,072 10/16/2020
3.0.0-alpha.0 2,119 9/25/2020
2.2.0-alpha 2,468 9/19/2020
2.1.8 2,038,147 11/21/2020
2.1.6 2,108,740 8/20/2020
2.1.5 602,676 7/27/2020
2.1.5-beta 4,236 6/30/2020
2.1.4 628,314 6/25/2020
2.1.3 691,428 6/5/2020
2.1.2-beta5 7,974 5/19/2020
2.1.2-beta4 4,976 5/12/2020
2.1.2-beta3 2,110 5/7/2020
2.1.2-beta2 22,184 4/16/2020
2.1.2-beta 4,400 3/31/2020
2.1.1 1,579,912 3/19/2020
2.1.0 769,587 2/24/2020
2.0.3 593,500 2/12/2020
2.0.2 36,322 2/8/2020
2.0.1 275,734 1/28/2020
2.0.0-beta8 24,230 1/15/2020
2.0.0-beta7 162,589 12/17/2019
2.0.0-beta6 102,991 10/31/2019
2.0.0-beta5 7,351 10/29/2019
2.0.0-beta4 75,900 9/4/2019
2.0.0-beta3 17,201 7/26/2019
2.0.0-beta2 6,261 6/9/2019
2.0.0-beta 3,373 6/4/2019
1.2.1-beta 2,181 5/27/2019
1.2.0 3,150,384 5/23/2019
1.1.3-beta4 2,010 5/15/2019
1.1.3-beta3 1,802 5/13/2019
1.1.3-beta2 7,977 3/28/2019
1.1.3-beta 5,474 2/11/2019
1.1.2 633,284 1/16/2019
1.1.2-beta 3,623 1/8/2019
1.1.1 24,425 1/5/2019
1.1.0 115,827 12/5/2018
1.0.1-beta5 2,720 12/5/2018
1.0.1-beta4 3,466 12/3/2018
1.0.1-beta3 18,445 11/15/2018
1.0.1-beta2 3,360 11/14/2018
1.0.1-beta 20,916 10/24/2018
1.0.0 290,165 10/2/2018
1.0.0-rc2 24,635 9/7/2018
1.0.0-rc 5,979 8/24/2018
0.0.1-preview5 7,574 8/5/2018
0.0.1-preview4 5,128 7/30/2018
0.0.1-preview3 6,700 7/17/2018
0.0.1-preview2 6,075 7/3/2018
0.0.1-preview1 2,653 6/28/2018