Honeybadger for .NET
Typical installation time: ~5 minutes
Hi there! You've found Honeybadger's guide to .NET exception and error tracking. Once installed, Honeybadger will automatically report errors from your .NET or C# application.
Getting Started
Configuration
The Honeybadger Notifier can be configured using the HoneybadgerOptions
class.
Honeybadger can be configured by passing the options when registering the service,
or through your appsettings.json
file.
Honeybadger, by default, will not report errors in development environments.
You can override the development environments by setting the DevelopmentEnvironments
property in the options.
Alternatively, you can set the ReportData
property to true
to report errors in all environments.
See below for examples on how to configure Honeybadger for different types of applications.
For .Net Core Web App
1. Install Honeybadger.DotNetCore from Nuget
dotnet add package Honeybadger.DotNetCore
2. Register the Honeybadger Middleware:
var builder = WebApplication.CreateBuilder(args);
builder.AddHoneybadger(new HoneybadgerOptions("Your project API key"));
Or you can configure Honeybadger through your appsettings.json
file, by adding a Honeybadger
section:
{
"Honeybadger": {
"ApiKey": "Your project API key",
"AppEnvironment": "Development",
"ReportData": true
}
}
And simply call AddHoneybadger
without any parameters:
var builder = WebApplication.CreateBuilder(args);
builder.AddHoneybadger();
Usage
You can access the Honeybadger Client using DI:
app.MapGet("/", ([FromServices] IHoneybadgerClient client) =>
{
client.AddBreadcrumb("reached index route", "route", new Dictionary<string, object?>());
return "Hello World!";
});
Any unhandled exceptions should be reported to Honeybadger automatically (unless ReportUnhandledExceptions
is set to false):
app.MapGet("/debug", () =>
{
throw new Exception("hello from .Net Core Web App!");
});
See example project in examples/Honeybadger.DotNetCoreWebApp
.
As a custom logging provider
1. Install Honeybadger.Extensions.Logging from Nuget
dotnet add package Honeybadger.Extensions.Logging
2. Register Honeybadger and additionally the custom logging provider:
var builder = WebApplication.CreateBuilder(args);
// or set the configuration in the appsettings.json file
builder.AddHoneybadger(new HoneybadgerOptions("Your project API key"));
builder.Logging.AddHoneybadger();
You should also configure the minimum log level as you would configure other log providers in .Net Core. The following would report only logged errors:
{
"Logging": {
"Honeybadger": {
"Default": "Error"
}
}
}
And simply call AddHoneybadger
and Logging.AddHoneybadger
without any parameters:
var builder = WebApplication.CreateBuilder(args);
builder.AddHoneybadger();
builder.Logging.AddHoneybadger();
Note: If you want to disable automatic reporting of unhandled exceptions, you can set the ReportUnhandledExceptions
property to false
in the HoneybadgerOptions
:
{
"Honeybadger": {
"ApiKey": "Your project API key",
"AppEnvironment": "Development",
"ReportData": true,
"ReportUnhandledExceptions": false
}
}
Usage
Errors from the logger
will be reported to Honeybadger:
app.MapGet("/notify", ([FromServices] ILogger logger) =>
{
logger.LogError("hello from Honeybadger.Logger!");
return "Log reported to Honeybadger. Check your dashboard!";
});
See example project in examples/Honeybadger.DotNetCoreWebApp.Logger
.
Using the SDK manually
1. Install the Honeybadger Nuget.
dotnet add package Honeybadger
2. Initialize the Honeybadger Client:
using Microsoft.Extensions.Options;
var options = new HoneybadgerOptions("Your project API key");
var client = new HoneybadgerClient(Options.Create(options));
3. Call notify
to report to Honeybadger:
// blocking
client.Notify("hello from .Net !");
// or async
await client.NotifyAsync("hello from .Net !");
See example project in examples/Honeybadger.Console
.
Supported .NET versions
All modern .Net Core applications are supported, up to .Net 9.0.