Eigenverft.NetLib.Logging.Deferred
1.0.0.5-g17613f8942
See the version list below for details.
dotnet add package Eigenverft.NetLib.Logging.Deferred --version 1.0.0.5-g17613f8942
NuGet\Install-Package Eigenverft.NetLib.Logging.Deferred -Version 1.0.0.5-g17613f8942
<PackageReference Include="Eigenverft.NetLib.Logging.Deferred" Version="1.0.0.5-g17613f8942" />
<PackageVersion Include="Eigenverft.NetLib.Logging.Deferred" Version="1.0.0.5-g17613f8942" />
<PackageReference Include="Eigenverft.NetLib.Logging.Deferred" />
paket add Eigenverft.NetLib.Logging.Deferred --version 1.0.0.5-g17613f8942
#r "nuget: Eigenverft.NetLib.Logging.Deferred, 1.0.0.5-g17613f8942"
#:package Eigenverft.NetLib.Logging.Deferred@1.0.0.5-g17613f8942
#addin nuget:?package=Eigenverft.NetLib.Logging.Deferred&version=1.0.0.5-g17613f8942&prerelease
#tool nuget:?package=Eigenverft.NetLib.Logging.Deferred&version=1.0.0.5-g17613f8942&prerelease
Eigenverft.NetLib.Logging.Deferred
Defer message and structured-argument work until the underlying Microsoft logger enables the requested level. Use standard ILogger categories and providers with lazy factories for expensive diagnostics.
✨ At a glance
| Package | Eigenverft.NetLib.Logging.Deferred |
| APIs | IDeferredLogger<TCategoryName>, AddDeferredLogging(), ToDeferred() |
| Integration | Microsoft.Extensions.Logging and dependency injection |
| Target frameworks | .NET 8 and .NET 10 |
| License | MIT |
📦 Installation
dotnet add package Eigenverft.NetLib.Logging.Deferred
🚀 Quick start
Register the adapters with the Generic Host. A factory argument is evaluated only when the underlying logger enables that level:
using System.IO;
using Eigenverft.NetLib.Logging.Deferred;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);
builder.Services.AddDeferredLogging();
using IHost host = builder.Build();
IDeferredLogger<Program> logger =
host.Services.GetRequiredService<IDeferredLogger<Program>>();
string settingsDirectory = Path.Combine(
builder.Environment.ContentRootPath,
"settings");
logger.LogDebug(
"Discovered {FileCount} files",
() => Directory.GetFiles(settingsDirectory).Length);
logger.LogInformation(
() => $"Loaded settings from {settingsDirectory}.");
The same interfaces support standard levels and exception overloads. Structured message templates remain intact; only the supplied message or argument factories are evaluated lazily.
🧭 Registration and evaluation behavior
AddDeferredLogging() registers singleton generic and non-generic adapters over the normal ILogger<T>, ILogger, and ILoggerFactory services. It does not configure a logging provider. Generic Host applications already provide those services; with a plain service collection, register logging with services.AddLogging() first.
Factory overloads such as LogDebug("Count {Count}", () ⇒ ComputeCount()) avoid the computation when Debug is disabled. Eager values such as LogDebug("Count {Count}", ComputeCount()) are evaluated by the caller before the method is invoked. A disabled level skips factory evaluation; an enabled level evaluates each supplied factory once.
logger.ToDeferred() adapts an existing typed or untyped ILogger, including a bootstrap logger. The adapter uses that logger directly and preserves its category. This is lazy evaluation, not buffering: the wrapped logger is supplied when the adapter is created, and no messages are queued while waiting for a provider.
🎯 Target frameworks
The package targets net8.0 and net10.0.
🔗 Project links
📄 License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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 is compatible. 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. |
-
net10.0
- Microsoft.Extensions.Hosting (>= 10.0.0)
-
net8.0
- Microsoft.Extensions.Hosting (>= 8.0.1)
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0.5-gdfdd996480 | 0 | 9/29/2026 |
| 1.0.0.5-g17613f8942 | 0 | 9/29/2026 |
| 1.0.0.3-g28e841270d | 0 | 9/28/2026 |
| 1.0.0.2-gbac57d8b97 | 0 | 9/11/2026 |
| 1.0.0.2-g9537b96514 | 0 | 9/11/2026 |
Initial capability package extracted from Eigenverft.NetLib.Infrastructure.