.NET error monitoring: alerts in Telegram, Discord and Pushover
One NuGet package for ASP.NET Core, worker services, console apps and .NET Framework. Every new exception your application logs lands in the chat you already read: the first occurrence at once, with its stack trace, and repeats as a live count in that same message.
Free plan · no event quotas · your events are never stored
Add it in a few minutes
Install BugsRadar from NuGet. The package is an ILogger provider and a direct call. For Serilog, NLog or log4net install BugsRadar.Serilog, BugsRadar.NLog or BugsRadar.Log4Net: it brings BugsRadar with it. Use any of them together - an error reported twice still arrives once.
dotnet add package BugsRadar
using BugsRadar.Extensions.DependencyInjection;
using BugsRadar.Extensions.Logging;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddBugsRadar(configuration =>
{
configuration.ApiKey = "<your project API key>";
configuration.Environment = builder.Environment.EnvironmentName;
});
builder.Logging.AddBugsRadar();
// Anywhere in your code: Error and above goes to BugsRadar
logger.LogError(exception, "Order {OrderId} failed", orderId);
- Reports leave through a background queue: your code never waits for the network.
- Repeats of the same error travel as one request with a count, so a crash loop costs a request every few seconds, not thousands per second.
- When the server asks to slow down, the client waits; network failures are retried.
- On shutdown the queue is drained before the application exits.
- Targets .NET Standard 2.0: ASP.NET Core, worker services, console apps and .NET Framework.
Your logger, your framework
Each logger has its own package and its own page in the docs.
ILogger provider
Everything you log at Error and above through Microsoft.Extensions.Logging, with templates, properties, scopes and categories. ILogger docs →
Serilog sink
BugsRadar.Serilog: configured before the host exists or through dependency injection, sharing the client with ILogger. Serilog docs →
NLog target
BugsRadar.NLog: in NLog.config with layouts for the key and the environment, or in code. NLog docs →
log4net appender
BugsRadar.Log4Net: in log4net.config, with the key from an environment variable. log4net docs →
Console apps and scripts
A BugsRadarClient without dependency injection, and FlushAsync before the process exits. Console apps →
Already on Seq?
Point Serilog.Sinks.Seq at BugsRadar: the errors in your CLEF events go to your channels, with no BugsRadar package. CLEF and Seq clients →
Where the alerts go
Alerts go through your own Telegram bot, Discord webhook or Pushover application: you decide who reads the chat.
- Telegram - a private chat, a group or a channel, through the bot you create with @BotFather; repeats are counted in the first message, without a new notification.
- Discord - any text channel of your server, through a webhook; no bot to install, and the count of repeats is written into the first message too.
- Pushover - push notifications on your phone or desktop, for one person or a whole delivery group; repeats arrive as short summaries.
Coming with Business: Slack, Microsoft Teams, Google Chat and PagerDuty.
An alert, not an archive
BugsRadar does one thing: it brings every new error to your chat. It is honest about what it leaves to other tools.
- No history. Events are never stored, so there is no archive of past errors to search. Keep your logs for that.
- No dashboard. There is no page that lists your errors; the chat is the interface. If you need to browse and search past errors, you need an error tracker next to BugsRadar - many teams run both.
- Not for apps you ship to users. The API key is secret, so it belongs only in code that runs on your servers: not in WPF, WinForms, MAUI or Blazor WebAssembly apps.
Questions developers ask
Which .NET versions are supported?
The packages target .NET Standard 2.0, so they run on modern .NET and on .NET Framework: ASP.NET Core, worker services, console apps and services.
Does it slow down my requests?
No. Send and SendException queue the event and return at once; reports leave through a background queue in your process. The only method that waits for the network is FlushAsync, for a process that is about to exit.
I use Serilog, NLog or log4net. Do I need the ILogger provider?
No. Install BugsRadar.Serilog, BugsRadar.NLog or BugsRadar.Log4Net instead: each brings BugsRadar with it. An error that both ILogger and your logger see is sent once.
What happens when my app throws thousands of errors a minute?
The package folds repeats into one request with a count, and BugsRadar groups them on its side: you get the first occurrence at once, and that message keeps the count of the repeats. If errors come faster than your channel accepts, they are bundled into one message with a line per error.
Does BugsRadar store my errors?
No. An event stays in memory only until it is delivered to your channels; nothing is written to a database. BugsRadar keeps only what it needs to run: your email, your projects and the encrypted settings of your channels.
Pricing
Plans differ by features, not by volume: no event quotas and no per-seat fees on any plan. Free is 2 projects and 3 channels, Telegram, Discord and Pushover, every package and the HTTP endpoint, duplicate filtering and a live count of repeats. Pro, $5 per month or $50 per year, adds unlimited projects and channels and rules that route errors by level, module and environment. Compare the plans →
Your first .NET alert in a few minutes
Sign in with your email, create a project, add the package.
Next: BugsRadar for Node.js →