Mindscape.Raygun4Net.NetCore 11.1.2

dotnet add package Mindscape.Raygun4Net.NetCore --version 11.1.2                
NuGet\Install-Package Mindscape.Raygun4Net.NetCore -Version 11.1.2                
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="Mindscape.Raygun4Net.NetCore" Version="11.1.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Mindscape.Raygun4Net.NetCore --version 11.1.2                
#r "nuget: Mindscape.Raygun4Net.NetCore, 11.1.2"                
#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 Mindscape.Raygun4Net.NetCore as a Cake Addin
#addin nuget:?package=Mindscape.Raygun4Net.NetCore&version=11.1.2

// Install Mindscape.Raygun4Net.NetCore as a Cake Tool
#tool nuget:?package=Mindscape.Raygun4Net.NetCore&version=11.1.2                

Raygun4Net.NetCore - Raygun Provider for .NET 6+ projects

Where is my app API key?

When you create a new application on your Raygun dashboard, your app API key is displayed within the instructions page. You can also find the API key by clicking the "Application Settings" button in the side bar of the Raygun dashboard.

Namespace

The main classes can be found in the Mindscape.Raygun4Net namespace.

Installation

Install the Mindscape.Raygun4Net.NetCore NuGet package into your project. You can either use the below dotnet CLI command, or the NuGet management GUI in the IDE you use.

dotnet add package Mindscape.Raygun4Net.NetCore

Create an instance of RaygunClient by passing your app API key to the constructor, and hook it up to the unhandled exception delegate. This is typically done in Program.cs or the main method.

using Mindscape.Raygun4Net;

private static RaygunClient _raygunClient = new RaygunClient("paste_your_api_key_here");

AppDomain.CurrentDomain.UnhandledException += (object sender, UnhandledExceptionEventArgs e) =>
  _raygunClient.Send(e.ExceptionObject as Exception);
  

Alternatively you can configure RaygunClient to automatically report any Unhandled Exceptions directly to Raygun

using Mindscape.Raygun4Net;

private static RaygunSettings _raygunSettings = new RaygunSettings
{
  ApiKey = "paste_your_api_key_here",
  CatchUnhandledExceptions = true // automatically reports any unhandled exceptions to Raygun
};
private static RaygunClient _raygunClient = new RaygunClient(_raygunSettings);

Add some temporary code to throw an exception and manually send it to Raygun.

try
{
  ...
}
catch (Exception e)
{
  _raygunClient.SendInBackground(e);
} 

Manually sending exceptions

The above instructions will setup Raygun4Net to automatically detect and send all unhandled exceptions. Sometimes you may want to send exceptions manually, such as handled exceptions from within a try/catch block.

RaygunClient provides Send and SendInBackground methods for manually sending to Raygun. It's important to note that SendInBackground should only be used for handled exceptions, rather than exceptions that will cause the application to crash - otherwise the application will most likely shutdown all threads before Raygun is able to finish sending.

Additional configuration options and features

Modify or cancel message

On a RaygunClient instance, attach an event handler to the SendingMessage event. This event handler will be called just before the RaygunClient sends an exception - either automatically or manually. The event arguments provide the RaygunMessage object that is about to be sent. One use for this event handler is to add or modify any information on the RaygunMessage. Another use for this method is to identify exceptions that you never want to send to raygun, and if so, set e.Cancel = true to cancel the send.

Strip wrapper exceptions

If you have common outer exceptions that wrap a valuable inner exception which you'd prefer to group by, you can specify these by using the multi-parameter method:

RaygunClient.AddWrapperExceptions(typeof(TargetInvocationException));

In this case, if a TargetInvocationException occurs, it will be removed and replaced with the actual InnerException that was the cause. Note that TargetInvocationException is already added to the wrapper exception list; you do not have to add this manually. This method is useful if you have your own custom wrapper exceptions, or a framework is throwing exceptions using its own wrapper.

Unique (affected) user tracking

There are properties named User and UserInfo on RaygunClient which you can set to provide user info such as ID and email address This allows you to see the count of affected users for each error in the Raygun dashboard. If you provide an email address, and the user has an associated Gravatar, you will see their avatar in the error instance page.

Make sure to abide by any privacy policies that your company follows when using this feature.

Version numbering

You can provide an application version value by setting the ApplicationVersion property of the RaygunClient (in the format x.x.x.x where x is a positive integer).

Offline storage

You can optionally specify an Offline Store for crash reports when creating your RaygunClient.

When an offline store is specified, if there are any issues sending an exception to the Raygun API, a copy of the exception may be stored locally to be retried at a later date.

An exception is stored offline when one of the following conditions are met:

  • There was a network connectivity issue, e.g. no active internet connection on a mobile device
  • The Raygun API responded with an HTTP 5xx, indicating an unexpected server error
// Attempt to send any offline crash reports every 30 seconds
var sendStrategy = new TimerBasedSendStrategy(TimeSpan.FromSeconds(30));

// Store crash reports in Local AppData
var offlineStore = new LocalApplicationDataCrashReportStore(sendStrategy);

var raygunClient = new RaygunClient(new RaygunSettings()
{
  ApiKey = "paste_your_api_key_here",

  // Optionally store 
  OfflineStore = offlineStore
});

You may extend and create your own custom implementations of OfflineStoreBase and IBackgroundSendStrategy to further customize where errors are stored, and when they are sent.

Tags and custom data

When sending exceptions manually, you can also send an arbitrary list of tags (an array of strings), and a collection of custom data (a dictionary of any objects). This can be done using the various Send and SendInBackground method overloads.


See the Raygun docs for more detailed instructions on how to use this provider.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  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 is compatible. 
.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 (6)

Showing the top 5 NuGet packages that depend on Mindscape.Raygun4Net.NetCore:

Package Downloads
Serilog.Sinks.Raygun

Serilog event sink that writes to the Raygun service.

Mindscape.Raygun4Net.NetCore.Signed

Package is deprecated, please use `Mindscape.Raygun4Net.NetCore` which is signed.

Raygun4Maui

Raygun's Crash Reporting and Real User Monitoring Provider for MAUI .NET

Splat.Raygun

A library to make things cross-platform that should be.

AspNetCore.AutoHealthCheck.Raygun

Auto Health Check integration for Raygun.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Mindscape.Raygun4Net.NetCore:

Repository Stars
reactiveui/splat
Makes things cross-platform
Version Downloads Last updated
11.1.2 4,154 11/12/2024
11.1.2-pre-2 103 11/12/2024
11.1.2-pre-1 228 9/17/2024
11.1.1 18,340 9/12/2024
11.1.0 26,762 8/25/2024
11.0.4-pre-5 126 8/23/2024
11.0.4-pre-4 128 8/22/2024
11.0.4-pre-2 1,563 8/15/2024
11.0.4-pre-1 239 8/13/2024
11.0.3 11,094 7/25/2024
11.0.3-pre-1 95 7/22/2024
11.0.2 16,272 6/20/2024
11.0.1 6,677 6/14/2024
11.0.1-pre1 94 6/13/2024
11.0.0 3,940 6/9/2024
11.0.0-rc1 92 6/7/2024
11.0.0-pre3 103 5/30/2024
11.0.0-pre2 122 5/24/2024
11.0.0-pre1 104 5/23/2024
10.1.2 20,220 5/9/2024
10.1.2-pre-1 87 5/9/2024
10.1.1 16,401 3/27/2024
10.1.1-pre-1 109 3/20/2024
10.1.0 6,477 3/18/2024
10.1.0-pre-2 91 3/18/2024
10.1.0-pre-1 102 3/15/2024
10.0.0 1,358 3/13/2024
10.0.0-pre-6 107 3/12/2024
10.0.0-pre-5 103 3/12/2024
10.0.0-pre-4 130 2/23/2024
10.0.0-pre-2 103 2/23/2024
10.0.0-pre-1 97 2/22/2024
9.0.4 5,224 3/3/2024
9.0.4-pre-1 102 2/29/2024
9.0.3 1,382 2/27/2024
9.0.2 812 2/22/2024
9.0.2-pre-1 93 2/19/2024
9.0.1 4,191 2/8/2024
9.0.0-pre3 101 2/7/2024
9.0.0-pre-1 95 2/2/2024
8.3.0-pre1 116 1/26/2024
8.1.0-pre6 2,103 1/14/2024
8.1.0-pre5 97 1/14/2024
8.1.0-pre3 759 1/9/2024
8.1.0-pre2 78 1/9/2024
8.1.0-pre1 323 12/21/2023
8.0.1 21,452 11/28/2023
8.0.1-pre-1 124 11/27/2023
8.0.0 33,556 11/14/2023
8.0.0-pre-1 9,157 11/9/2023
7.1.0 21,110 10/9/2023
7.1.0-pre-1 131 9/22/2023
7.0.0 14,708 9/12/2023
6.7.0 29,796 8/28/2023
6.7.0-pre2 153 8/21/2023
6.4.3 207,559 2/28/2022
6.4.2 493 2/23/2022
6.4.1 117,721 9/2/2021
6.3.1 509,002 8/17/2020
6.3.0 9,218 6/30/2020
6.2.1-beta1 490 2/13/2020
6.2.0 130,651 10/9/2019
6.0.1 87,987 10/4/2018
6.0.0 11,330 5/28/2018
5.5.4 12,354 4/27/2018