Baubit.Logging.DI
2025.49.1
dotnet add package Baubit.Logging.DI --version 2025.49.1
NuGet\Install-Package Baubit.Logging.DI -Version 2025.49.1
<PackageReference Include="Baubit.Logging.DI" Version="2025.49.1" />
<PackageVersion Include="Baubit.Logging.DI" Version="2025.49.1" />
<PackageReference Include="Baubit.Logging.DI" />
paket add Baubit.Logging.DI --version 2025.49.1
#r "nuget: Baubit.Logging.DI, 2025.49.1"
#:package Baubit.Logging.DI@2025.49.1
#addin nuget:?package=Baubit.Logging.DI&version=2025.49.1
#tool nuget:?package=Baubit.Logging.DI&version=2025.49.1
Baubit.Logging.DI
Overview
DI extension for Microsoft.Extensions.Logging. Enables registration of ILoggerFactory with configurable logging providers (Console, Debug) driven by configuration.
Installation
dotnet add package Baubit.Logging.DI
Or via NuGet Package Manager:
Install-Package Baubit.Logging.DI
Quick Start
Baubit.Logging.DI supports three patterns for module loading, consistent with Baubit.DI:
Pattern 1: Modules from appsettings.json
Load logging configuration from JSON. Module types and settings are defined in configuration files.
await Host.CreateApplicationBuilder()
.UseConfiguredServiceProviderFactory()
.Build()
.RunAsync();
appsettings.json:
{
"modules": [
{
"type": "Baubit.Logging.DI.Module, Baubit.Logging.DI",
"configuration": {
"addConsole": true,
"addDebug": true
}
}
]
}
Pattern 2: Modules from Code (IComponent)
Load logging programmatically using IComponent. No configuration file needed.
public class AppComponent : AComponent
{
protected override Result<ComponentBuilder> Build(ComponentBuilder builder)
{
return builder.WithModule<Module, Configuration>(config =>
{
config.AddConsole = true;
config.AddDebug = true;
});
}
}
await Host.CreateEmptyApplicationBuilder(new HostApplicationBuilderSettings())
.UseConfiguredServiceProviderFactory(componentsFactory: () => [new AppComponent()])
.Build()
.RunAsync();
Pattern 3: Hybrid Loading (appsettings.json + IComponent)
Combine configuration-based and code-based module loading.
await Host.CreateApplicationBuilder()
.UseConfiguredServiceProviderFactory(componentsFactory: () => [new AppComponent()])
.Build()
.RunAsync();
Using AddModule Directly
For direct service collection usage without Host:
var services = new ServiceCollection();
services.AddModule<Module, Configuration>(config =>
{
config.AddConsole = true;
config.AddDebug = true;
});
var serviceProvider = services.BuildServiceProvider();
var loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>();
var logger = loggerFactory.CreateLogger<MyClass>();
logger.LogInformation("Hello, World!");
Features
- Console Logging: Enable console output for log messages
- Debug Logging: Enable debug output for log messages
- Configuration-Driven: All providers can be enabled/disabled via configuration
- Type-Safe Configuration: Strongly-typed configuration with sensible defaults
- .NET Standard 2.0: Compatible with .NET Framework, .NET Core, and .NET 5+
API Reference
Configuration
Configuration class for the Logging DI module:
public class Configuration : AConfiguration
{
// Enable console logging provider. Defaults to false.
public bool AddConsole { get; set; } = false;
// Enable debug logging provider. Defaults to false.
public bool AddDebug { get; set; } = false;
}
Module
DI module for registering ILoggerFactory:
public class Module : AModule<Configuration>
{
public Module(IConfiguration configuration);
public Module(Configuration configuration, List<IModule> nestedModules = null);
public override void Load(IServiceCollection services);
}
Usage Examples
Console Logging Only:
services.AddModule<Module, Configuration>(config =>
{
config.AddConsole = true;
});
var loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>();
var logger = loggerFactory.CreateLogger("MyApp");
logger.LogInformation("This will appear in the console");
Debug Logging Only:
services.AddModule<Module, Configuration>(config =>
{
config.AddDebug = true;
});
var loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>();
var logger = loggerFactory.CreateLogger("MyApp");
logger.LogDebug("This will appear in debug output");
Both Console and Debug:
services.AddModule<Module, Configuration>(config =>
{
config.AddConsole = true;
config.AddDebug = true;
});
Contributing
Contributions are welcome. Open an issue or submit a pull request.
License
MIT License - see LICENSE file for details.
| 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 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. 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
- Baubit.DI.Extensions (>= 2025.49.3)
- Microsoft.Extensions.Logging (>= 9.0.5)
- Microsoft.Extensions.Logging.Console (>= 9.0.5)
- Microsoft.Extensions.Logging.Debug (>= 9.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2025.49.1 | 192 | 12/5/2025 |