ErrorDock.Extensions.Logging
0.1.0-rc.1
dotnet add package ErrorDock.Extensions.Logging --version 0.1.0-rc.1
NuGet\Install-Package ErrorDock.Extensions.Logging -Version 0.1.0-rc.1
<PackageReference Include="ErrorDock.Extensions.Logging" Version="0.1.0-rc.1" />
<PackageVersion Include="ErrorDock.Extensions.Logging" Version="0.1.0-rc.1" />
<PackageReference Include="ErrorDock.Extensions.Logging" />
paket add ErrorDock.Extensions.Logging --version 0.1.0-rc.1
#r "nuget: ErrorDock.Extensions.Logging, 0.1.0-rc.1"
#:package ErrorDock.Extensions.Logging@0.1.0-rc.1
#addin nuget:?package=ErrorDock.Extensions.Logging&version=0.1.0-rc.1&prerelease
#tool nuget:?package=ErrorDock.Extensions.Logging&version=0.1.0-rc.1&prerelease
ErrorDock.Extensions.Logging
ErrorDock for applications built on the .NET generic host — worker services, console
applications, Windows Services. Adds AddErrorDock() and an ILogger provider, and sends to
ErrorDock.
dotnet add package ErrorDock.Extensions.Logging
Building an ASP.NET Core application? Install ErrorDock.AspNetCore instead — it depends
on this package and adds the request middleware. Building something with no host at all?
ErrorDock.Core has a static entry point for that.
Getting started
using ErrorDock;
var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddErrorDock(options =>
{
options.ApiKey = "ed_live_…";
options.Endpoint = "https://api.errordock.com";
options.Release = typeof(Program).Assembly.GetName().Version?.ToString();
});
// Opt-in, and Warning and above by default. A service that shipped its Information logs
// would spend a monthly quota in an afternoon.
builder.Logging.AddErrorDock();
var host = builder.Build();
await host.RunAsync();
Environment defaults to the host environment name, so it is usually one line less than it
looks. Configuration can come from appsettings.json instead, under the ErrorDock section:
{
"ErrorDock": {
"ApiKey": "ed_live_…",
"Endpoint": "https://api.errordock.com",
"MinimumLogLevel": "Warning"
}
}
Use a server key (ed_live_) for anything that runs on hardware you control. For an
application you ship to somebody else's machine, use an application key (ed_app_) — a
secret inside an installer is a secret your customers hold.
Reporting
Inject IErrorDockClient wherever you need it:
public sealed class NightlyExport(IErrorDockClient errorDock)
{
public async Task RunAsync(CancellationToken cancellationToken)
{
await errorDock.RunFeatureAsync("nightly-export", () => _exporter.RunAsync(cancellationToken));
}
}
RunFeatureAsync records the execution, marks it failed if the task faults, and rethrows.
Use it, not RunFeature, for anything that returns a Task: the synchronous overload would
record the moment the task was created — a duration of nothing and an outcome of Ok whatever
happened afterwards. That
produces the denominator as well as the numerator, which is what makes a feature error rate a
number rather than a guess.
Shutdown
The host stops the SDK for you: the background dispatcher flushes once more when the application is shutting down, and whatever it cannot deliver is written to the offline queue for the next start. A worker restarted mid-deploy no longer loses the events that were in flight.
What it guarantees
Everything ErrorDock.Core guarantees — it never throws, never blocks, gives up on purpose,
and follows the dashboard. This package adds the host wiring and takes abstractions only
(Microsoft.Extensions.*.Abstractions plus Microsoft.Extensions.Http), so it never decides
which version of the host you run.
Licence
MIT. The ErrorDock service itself is proprietary; this SDK is not.
| 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 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.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
- ErrorDock.Core (>= 0.1.0-rc.1)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.1)
- Microsoft.Extensions.Http (>= 8.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.3)
- Microsoft.Extensions.Options (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
-
net8.0
- ErrorDock.Core (>= 0.1.0-rc.1)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.1)
- Microsoft.Extensions.Http (>= 8.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.3)
- Microsoft.Extensions.Options (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ErrorDock.Extensions.Logging:
| Package | Downloads |
|---|---|
|
ErrorDock.AspNetCore
ErrorDock SDK for ASP.NET Core: unhandled exceptions, logs, features and requests. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-rc.1 | 188 | 9/9/2026 |