Sentry 1.0.0-rc2
Prefix ReservedSee the version list below for details.
dotnet add package Sentry --version 1.0.0-rc2
NuGet\Install-Package Sentry -Version 1.0.0-rc2
<PackageReference Include="Sentry" Version="1.0.0-rc2" />
paket add Sentry --version 1.0.0-rc2
#r "nuget: Sentry, 1.0.0-rc2"
// Install Sentry as a Cake Addin #addin nuget:?package=Sentry&version=1.0.0-rc2&prerelease // Install Sentry as a Cake Tool #tool nuget:?package=Sentry&version=1.0.0-rc2&prerelease
Below you will find a basic introduction to the SDK and its API.
For more details, please: refer to the SDK documentation
Main features
- Automatic Captures global unhandled exceptions (AppDomain)
- Scope management
- Duplicate events automatically dropped
- Events from the same exception automatically dropped
- Web proxy support
- HttpClient/HttpClientHandler configuration callback
- Compress request body
- Event sampling opt-in
- Event flooding protection (429 retry-after and internal bound queue)
- DSN discovered via environment variable
- Release (version) reported automatically
- CLS Compliant
- Strong named
- BeforeSend and BeforeBreadcrumb callbacks
- Event and Exception processors
- SourceLink (including PDB in nuget package)
- Device OS info sent
- Device Runtime info sent
- Enable SDK debug mode (opt-in)
- Attach stack trace for captured messages (opt-in)
- Tested on Windows, Linux and macOS
- Tested on .NET Core, .NET Framework and Mono
Basics
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.Proxy = new WebProxy("https://localhost:3128");
}))
{
// App code
}
}
Capture an exception:
try
{
throw null;
}
catch (Exception e)
{
SentrySdk.CaptureException(e);
}
Capture a message:
SentrySdk.CaptureMessage("this just happened");
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 (4.7.2 advised)
- .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.7.2 on Windows
- Mono 5.12 macOS and Linux (Travis-CI)
- .NET Core 2.0 Windows, macOS and Linux
- .NET Core 2.1 Windows, macOS and Linux
Product | Versions 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. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 11.0.2)
- Sentry.PlatformAbstractions (>= 1.0.0-rc)
- Sentry.Protocol (>= 1.0.0-rc2)
- System.Collections.Immutable (>= 1.5.0)
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 (46)
Showing the top 5 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.
|
|
LykosAI/StabilityMatrix
Multi-Platform Package Manager for Stable Diffusion
|
Version | Downloads | Last updated | |
---|---|---|---|
5.0.0-alpha.0 | 0 | 11/24/2024 | |
4.13.0 | 168,101 | 11/5/2024 | |
4.12.2 | 29,514 | 11/2/2024 | |
4.12.1 | 399,171 | 10/10/2024 | |
4.12.1-segv1 | 649 | 11/1/2024 | |
4.12.0 | 156,899 | 10/2/2024 | |
4.11.0 | 351,787 | 9/22/2024 | |
4.10.2 | 715,838 | 8/21/2024 | |
4.10.1 | 125,854 | 8/16/2024 | |
4.10.0 | 48,286 | 8/14/2024 | |
4.9.0 | 1,009,298 | 7/11/2024 | |
4.9.0-sync.collection.2 | 193 | 7/30/2024 | |
4.9.0-sync.collection.1 | 92 | 7/30/2024 | |
4.8.1 | 217,448 | 7/2/2024 | |
4.8.0 | 188,120 | 6/26/2024 | |
4.7.0 | 875,586 | 5/27/2024 | |
4.6.2 | 396,378 | 5/14/2024 | |
4.6.0 | 91,107 | 5/9/2024 | |
4.5.0 | 265,625 | 4/30/2024 | |
4.4.0 | 456,264 | 4/12/2024 | |
4.3.0 | 144,357 | 4/10/2024 | |
4.2.1 | 787,055 | 3/12/2024 | |
4.2.0 | 41,840 | 3/11/2024 | |
4.1.2 | 1,093,113 | 2/20/2024 | |
4.1.1 | 180,519 | 2/14/2024 | |
4.1.0 | 165,660 | 2/9/2024 | |
4.0.3 | 70,899 | 2/7/2024 | |
4.0.2 | 66,416 | 2/6/2024 | |
4.0.1 | 40,471 | 2/5/2024 | |
4.0.0 | 108,079 | 2/1/2024 | |
4.0.0-beta.9 | 1,125 | 1/30/2024 | |
4.0.0-beta.8 | 17,409 | 1/11/2024 | |
4.0.0-beta.7 | 7,894 | 1/5/2024 | |
4.0.0-beta.6 | 16,387 | 12/13/2023 | |
4.0.0-beta.5 | 2,524 | 12/12/2023 | |
4.0.0-beta.4 | 19,318 | 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 | 564 | 11/17/2023 | |
4.0.0-alpha.0 | 5,822 | 11/9/2023 | |
3.41.4 | 1,062,493 | 1/23/2024 | |
3.41.3 | 1,495,695 | 11/29/2023 | |
3.41.2 | 321,362 | 11/23/2023 | |
3.41.1 | 72,500 | 11/22/2023 | |
3.41.0 | 899,877 | 11/8/2023 | |
3.40.1 | 768,038 | 10/12/2023 | |
3.40.0 | 137,833 | 10/10/2023 | |
3.40.0-beta.0 | 14,672 | 9/21/2023 | |
3.39.1 | 1,451,196 | 9/12/2023 | |
3.39.0 | 212,510 | 9/7/2023 | |
3.36.0 | 605,601 | 8/22/2023 | |
3.35.1 | 246,349 | 8/16/2023 | |
3.35.0 | 170,988 | 8/8/2023 | |
3.34.0 | 1,105,837 | 7/13/2023 | |
3.33.1 | 1,306,250 | 6/13/2023 | |
3.33.0 | 1,151,826 | 5/22/2023 | |
3.32.0 | 26,447 | 5/22/2023 | |
3.31.0 | 750,919 | 5/2/2023 | |
3.30.0 | 1,169,795 | 4/11/2023 | |
3.29.1 | 1,774,263 | 3/11/2023 | |
3.29.0 | 238,348 | 3/6/2023 | |
3.28.1 | 1,368,307 | 2/10/2023 | |
3.28.0 | 74,327 | 2/8/2023 | |
3.27.1 | 329,744 | 2/3/2023 | |
3.27.0 | 145,408 | 2/1/2023 | |
3.26.2 | 681,224 | 1/24/2023 | |
3.26.1 | 275,101 | 1/17/2023 | |
3.26.0 | 359,116 | 1/13/2023 | |
3.25.0 | 1,177,723 | 12/23/2022 | |
3.24.1 | 341,187 | 12/16/2022 | |
3.24.0 | 1,667,988 | 11/18/2022 | |
3.23.1 | 893,248 | 10/31/2022 | |
3.23.0 | 101,518 | 10/27/2022 | |
3.22.0 | 1,380,234 | 10/7/2022 | |
3.21.0 | 1,701,715 | 9/2/2022 | |
3.20.1 | 1,676,994 | 7/26/2022 | |
3.19.0 | 948,850 | 6/28/2022 | |
3.18.0 | 608,787 | 6/15/2022 | |
3.17.1 | 1,419,948 | 5/8/2022 | |
3.17.0 | 145,821 | 5/3/2022 | |
3.16.0 | 973,139 | 4/7/2022 | |
3.15.0 | 983,381 | 3/15/2022 | |
3.14.1 | 898,543 | 2/18/2022 | |
3.14.0 | 208,122 | 2/14/2022 | |
3.13.0 | 1,479,139 | 1/11/2022 | |
3.12.3 | 1,058,190 | 12/19/2021 | |
3.12.2 | 83,187 | 12/15/2021 | |
3.12.1 | 365,299 | 12/6/2021 | |
3.12.0 | 293,132 | 11/23/2021 | |
3.12.0-alpha.1 | 5,958 | 11/7/2021 | |
3.11.1 | 674,929 | 11/5/2021 | |
3.11.0 | 151,945 | 11/2/2021 | |
3.10.0 | 645,147 | 10/15/2021 | |
3.9.4 | 969,883 | 9/29/2021 | |
3.9.3 | 171,346 | 9/21/2021 | |
3.9.2 | 235,422 | 9/10/2021 | |
3.9.1 | 14,418 | 9/9/2021 | |
3.9.0 | 304,767 | 8/27/2021 | |
3.8.3 | 819,218 | 7/25/2021 | |
3.8.2 | 141,330 | 7/17/2021 | |
3.8.1 | 27,822 | 7/15/2021 | |
3.8.0 | 120,274 | 7/14/2021 | |
3.7.0 | 135,193 | 7/10/2021 | |
3.6.1 | 181,045 | 7/2/2021 | |
3.6.0 | 235,950 | 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,150 | 6/7/2021 | |
3.4.0 | 151,810 | 5/31/2021 | |
3.4.0-beta.0 | 328 | 5/27/2021 | |
3.3.5-beta.0 | 2,567 | 5/13/2021 | |
3.3.4 | 760,407 | 4/26/2021 | |
3.3.3 | 9,130 | 4/23/2021 | |
3.3.2 | 24,785 | 4/23/2021 | |
3.3.1 | 575,633 | 4/5/2021 | |
3.3.0 | 33,980 | 4/3/2021 | |
3.2.0 | 132,134 | 3/26/2021 | |
3.1.0 | 385,594 | 3/10/2021 | |
3.0.8 | 70,875 | 3/4/2021 | |
3.0.7 | 241,006 | 2/20/2021 | |
3.0.6 | 102,002 | 2/14/2021 | |
3.0.5 | 70,390 | 2/9/2021 | |
3.0.4 | 31,869 | 2/8/2021 | |
3.0.3 | 79,536 | 2/3/2021 | |
3.0.2 | 22,516 | 2/3/2021 | |
3.0.1 | 142,494 | 1/29/2021 | |
3.0.0 | 40,763 | 1/28/2021 | |
3.0.0-beta.0 | 5,583 | 1/20/2021 | |
3.0.0-alpha.11 | 492 | 1/15/2021 | |
3.0.0-alpha.10 | 63,730 | 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,674 | 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,069 | 10/16/2020 | |
3.0.0-alpha.0 | 2,119 | 9/25/2020 | |
2.2.0-alpha | 2,448 | 9/19/2020 | |
2.1.8 | 2,036,138 | 11/21/2020 | |
2.1.6 | 2,107,486 | 8/20/2020 | |
2.1.5 | 602,172 | 7/27/2020 | |
2.1.5-beta | 4,234 | 6/30/2020 | |
2.1.4 | 627,996 | 6/25/2020 | |
2.1.3 | 690,941 | 6/5/2020 | |
2.1.2-beta5 | 7,974 | 5/19/2020 | |
2.1.2-beta4 | 4,975 | 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,143 | 3/19/2020 | |
2.1.0 | 769,426 | 2/24/2020 | |
2.0.3 | 593,287 | 2/12/2020 | |
2.0.2 | 36,318 | 2/8/2020 | |
2.0.1 | 275,515 | 1/28/2020 | |
2.0.0-beta8 | 24,228 | 1/15/2020 | |
2.0.0-beta7 | 162,574 | 12/17/2019 | |
2.0.0-beta6 | 102,986 | 10/31/2019 | |
2.0.0-beta5 | 7,351 | 10/29/2019 | |
2.0.0-beta4 | 75,892 | 9/4/2019 | |
2.0.0-beta3 | 17,201 | 7/26/2019 | |
2.0.0-beta2 | 6,257 | 6/9/2019 | |
2.0.0-beta | 3,373 | 6/4/2019 | |
1.2.1-beta | 2,165 | 5/27/2019 | |
1.2.0 | 3,149,324 | 5/23/2019 | |
1.1.3-beta4 | 2,008 | 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 | 632,944 | 1/16/2019 | |
1.1.2-beta | 3,623 | 1/8/2019 | |
1.1.1 | 24,419 | 1/5/2019 | |
1.1.0 | 115,771 | 12/5/2018 | |
1.0.1-beta5 | 2,718 | 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,912 | 10/24/2018 | |
1.0.0 | 289,964 | 10/2/2018 | |
1.0.0-rc2 | 24,633 | 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 |
Can be found at: https://github.com/getsentry/sentry-dotnet/releases