Microsoft.Extensions.Logging.Abstractions 10.0.6

About

Microsoft.Extensions.Logging.Abstractions provides abstractions of logging. Interfaces defined in this package are implemented by classes in Microsoft.Extensions.Logging and other logging packages.

This package includes a logging source generator that produces highly efficient and optimized code for logging message methods.

Key Features

  • Define main logging abstraction interfaces like ILogger, ILoggerFactory, ILoggerProvider, etc.

How to Use

Custom logger provider implementation example

using Microsoft.Extensions.Logging;

public sealed class ColorConsoleLogger : ILogger
{
    private readonly string _name;
    private readonly Func<ColorConsoleLoggerConfiguration> _getCurrentConfig;

    public ColorConsoleLogger(
        string name,
        Func<ColorConsoleLoggerConfiguration> getCurrentConfig) =>
        (_name, _getCurrentConfig) = (name, getCurrentConfig);

    public IDisposable? BeginScope<TState>(TState state) where TState : notnull => default!;

    public bool IsEnabled(LogLevel logLevel) =>
        _getCurrentConfig().LogLevelToColorMap.ContainsKey(logLevel);

    public void Log<TState>(
        LogLevel logLevel,
        EventId eventId,
        TState state,
        Exception? exception,
        Func<TState, Exception?, string> formatter)
    {
        if (!IsEnabled(logLevel))
        {
            return;
        }

        ColorConsoleLoggerConfiguration config = _getCurrentConfig();
        if (config.EventId == 0 || config.EventId == eventId.Id)
        {
            ConsoleColor originalColor = Console.ForegroundColor;

            Console.ForegroundColor = config.LogLevelToColorMap[logLevel];
            Console.WriteLine($"[{eventId.Id,2}: {logLevel,-12}]");

            Console.ForegroundColor = originalColor;
            Console.Write($"     {_name} - ");

            Console.ForegroundColor = config.LogLevelToColorMap[logLevel];
            Console.Write($"{formatter(state, exception)}");

            Console.ForegroundColor = originalColor;
            Console.WriteLine();
        }
    }
}

Create logs


// Worker class that uses logger implementation of teh interface ILogger<T>

public sealed class Worker : BackgroundService
{
    private readonly ILogger<Worker> _logger;

    public Worker(ILogger<Worker> logger) =>
        _logger = logger;

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            _logger.LogInformation("Worker running at: {time}", DateTimeOffset.UtcNow);
            await Task.Delay(1_000, stoppingToken);
        }
    }
}

Use source generator

public static partial class Log
{
    [LoggerMessage(
        EventId = 0,
        Level = LogLevel.Critical,
        Message = "Could not open socket to `{hostName}`")]
    public static partial void CouldNotOpenSocket(this ILogger logger, string hostName);
}

public partial class InstanceLoggingExample
{
    private readonly ILogger _logger;

    public InstanceLoggingExample(ILogger logger)
    {
        _logger = logger;
    }

    [LoggerMessage(
        EventId = 0,
        Level = LogLevel.Critical,
        Message = "Could not open socket to `{hostName}`")]
    public partial void CouldNotOpenSocket(string hostName);
}

Main Types

The main types provided by this library are:

  • Microsoft.Extensions.Logging.ILogger
  • Microsoft.Extensions.Logging.ILoggerProvider
  • Microsoft.Extensions.Logging.ILoggerFactory
  • Microsoft.Extensions.Logging.ILogger<TCategoryName>
  • Microsoft.Extensions.Logging.LogLevel
  • Microsoft.Extensions.Logging.Logger<T>
  • Microsoft.Extensions.Logging.LoggerMessage
  • Microsoft.Extensions.Logging.Abstractions.NullLogger

Additional Documentation

Microsoft.Extensions.Logging Microsoft.Extensions.Logging.Console Microsoft.Extensions.Logging.Debug Microsoft.Extensions.Logging.EventSource Microsoft.Extensions.Logging.EventLog Microsoft.Extensions.Logging.TraceSource

Feedback & Contributing

Microsoft.Extensions.Logging.Abstractions is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.

Showing the top 20 packages that depend on Microsoft.Extensions.Logging.Abstractions.

Packages Downloads
ModelingEvolution.RuntimeConfiguration
Package Description
337
FluentModbus
Lightweight and fast client and server implementation of the Modbus protocol (TCP/RTU, Sync/Async).
294
Microsoft.AspNetCore.Authorization
ASP.NET Core authorization classes. Commonly used types: Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute Microsoft.AspNetCore.Authorization.AuthorizeAttribute This package was built from the source code at https://github.com/dotnet/dotnet/tree/b0f34d51fccc69fd334253924abd8d6853fad7aa
222
ModelingEvolution.Mjpeg
MJPEG stream decoder with JPEG boundary detection, dimension extraction, and frame indexing utilities.
216
BlazorBlaze
High-performance 2D canvas engine for Blazor using SkiaSharp. Features include scene graph, hit detection, camera zoom/pan, extensible controls, and reactive data binding.
215
Grpc.Net.Client
.NET client for gRPC
214
Microsoft.Extensions.Localization
Application localization services and default implementation based on ResourceManager to load localized assembly resources. This package was built from the source code at https://github.com/dotnet/aspnetcore/tree/4442a188f9200a57635373dcd640893c0e8dcc78
211
Npgsql
Npgsql is the open source .NET data provider for PostgreSQL.
166
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging.
162
ModelingEvolution.Mjpeg
MJPEG stream decoder with JPEG boundary detection, dimension extraction, and frame indexing utilities.
161
Microsoft.Extensions.Hosting.Abstractions
Hosting and startup abstractions for applications.
161
Microsoft.Extensions.Diagnostics.HealthChecks
Components for performing health checks in .NET applications Commonly Used Types: Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckService Microsoft.Extensions.Diagnostics.HealthChecks.IHealthChecksBuilder This package was built from the source code at https://github.com/dotnet/dotnet/tree/b16286c2284fecf303dbc12a0bb152476d662e44
159
ModelingEvolution.Modbus
Modbus TCP device for the RocketWelder platform: a first-class IDevice (IPlc) with symbolic tag I/O over FluentModbus.
154
ZeroBuffer
High-performance zero-copy inter-process communication library for video streaming applications. Provides efficient shared memory buffers with cross-process synchronization for real-time video data transfer.
149
Microsoft.AspNetCore.Authorization
ASP.NET Core authorization classes. Commonly used types: Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute Microsoft.AspNetCore.Authorization.AuthorizeAttribute This package was built from the source code at https://github.com/dotnet/dotnet/tree/fad253f51b461736dfd3cd9c15977bb7493becef
149
Microsoft.Extensions.Localization
Application localization services and default implementation based on ResourceManager to load localized assembly resources. This package was built from the source code at https://github.com/dotnet/dotnet/tree/fad253f51b461736dfd3cd9c15977bb7493becef
139
BlazorBlaze
High-performance 2D canvas engine for Blazor using SkiaSharp. Features include scene graph, hit detection, camera zoom/pan, extensible controls, and reactive data binding.
128
ModelingEvolution.Ide
Package Description
124
Microsoft.Extensions.AI
Utilities for working with generative AI components.
116
Microsoft.Extensions.Hosting.Abstractions
Hosting and startup abstractions for applications.
115

Version Downloads Last updated
11.0.0-preview.5.26302.115 1 06/14/2026
11.0.0-preview.4.26230.115 2 05/17/2026
11.0.0-preview.3.26207.106 4 04/25/2026
11.0.0-preview.2.26159.112 3 04/25/2026
11.0.0-preview.1.26104.118 3 04/25/2026
10.0.9 119 06/14/2026
10.0.8 140 05/17/2026
10.0.7 172 04/24/2026
10.0.6 5 04/16/2026
10.0.5 50 03/16/2026
10.0.4 3 04/25/2026
10.0.3 58 03/16/2026
10.0.2 25 03/28/2026
10.0.1 209 03/16/2026
10.0.0 233 03/16/2026
10.0.0-rc.2.25502.107 3 04/25/2026
10.0.0-rc.1.25451.107 3 04/25/2026
10.0.0-preview.7.25380.108 3 04/25/2026
10.0.0-preview.6.25358.103 3 04/25/2026
10.0.0-preview.5.25277.114 3 04/25/2026
10.0.0-preview.4.25258.110 3 04/25/2026
10.0.0-preview.3.25171.5 3 04/25/2026
10.0.0-preview.2.25163.2 3 04/25/2026
10.0.0-preview.1.25080.5 4 04/25/2026
9.0.17 1 06/14/2026
9.0.16 3 05/17/2026
9.0.15 3 04/25/2026
9.0.14 3 04/25/2026
9.0.13 3 04/25/2026
9.0.12 3 04/25/2026
9.0.11 4 04/25/2026
9.0.10 3 04/25/2026
9.0.9 5 04/25/2026
9.0.8 213 03/16/2026
9.0.7 3 04/25/2026
9.0.6 3 04/25/2026
9.0.5 3 04/25/2026
9.0.4 3 04/25/2026
9.0.3 7 03/30/2026
9.0.2 3 04/25/2026
9.0.1 109 03/16/2026
9.0.0 162 03/21/2026
9.0.0-rc.2.24473.5 3 04/25/2026
9.0.0-rc.1.24431.7 3 04/25/2026
9.0.0-preview.7.24405.7 3 04/25/2026
9.0.0-preview.6.24327.7 4 04/25/2026
9.0.0-preview.5.24306.7 3 04/25/2026
9.0.0-preview.4.24266.19 3 04/25/2026
9.0.0-preview.3.24172.9 3 04/25/2026
9.0.0-preview.2.24128.5 3 04/25/2026
9.0.0-preview.1.24080.9 3 04/25/2026
8.0.3 4 04/02/2026
8.0.2 3 04/25/2026
8.0.1 3 04/25/2026
8.0.0 59 03/16/2026
8.0.0-rc.2.23479.6 3 04/25/2026
8.0.0-rc.1.23419.4 3 04/25/2026
8.0.0-preview.7.23375.6 3 04/25/2026
8.0.0-preview.6.23329.7 3 04/25/2026
8.0.0-preview.5.23280.8 3 04/25/2026
8.0.0-preview.4.23259.5 3 04/25/2026
8.0.0-preview.3.23174.8 3 04/25/2026
8.0.0-preview.2.23128.3 3 04/25/2026
8.0.0-preview.1.23110.8 3 04/25/2026
7.0.1 3 04/25/2026
7.0.0 5 03/19/2026
7.0.0-rc.2.22472.3 4 04/25/2026
7.0.0-rc.1.22426.10 3 04/25/2026
7.0.0-preview.7.22375.6 3 04/25/2026
7.0.0-preview.6.22324.4 3 04/25/2026
7.0.0-preview.5.22301.12 4 04/25/2026
7.0.0-preview.4.22229.4 3 04/25/2026
7.0.0-preview.3.22175.4 4 04/25/2026
7.0.0-preview.2.22152.2 3 04/25/2026
7.0.0-preview.1.22076.8 3 04/25/2026
6.0.4 3 04/25/2026
6.0.3 3 04/25/2026
6.0.2 3 04/25/2026
6.0.1 3 04/25/2026
6.0.0 213 03/16/2026
6.0.0-rc.2.21480.5 3 04/25/2026
6.0.0-rc.1.21451.13 4 04/25/2026
6.0.0-preview.7.21377.19 3 04/25/2026
6.0.0-preview.6.21352.12 3 04/25/2026
6.0.0-preview.5.21301.5 3 04/25/2026
6.0.0-preview.4.21253.7 3 04/25/2026
6.0.0-preview.3.21201.4 3 04/25/2026
6.0.0-preview.2.21154.6 3 04/25/2026
6.0.0-preview.1.21102.12 4 04/25/2026
5.0.0 234 03/16/2026
5.0.0-rc.2.20475.5 4 04/25/2026
5.0.0-rc.1.20451.14 3 04/25/2026
5.0.0-preview.8.20407.11 3 04/25/2026
5.0.0-preview.7.20364.11 4 04/25/2026
5.0.0-preview.6.20305.6 3 04/25/2026
5.0.0-preview.5.20278.1 3 04/25/2026
5.0.0-preview.4.20251.6 3 04/25/2026
5.0.0-preview.3.20215.2 4 04/25/2026
5.0.0-preview.2.20160.3 3 04/25/2026
5.0.0-preview.1.20120.4 3 04/25/2026
3.1.32 3 04/25/2026
3.1.31 3 04/25/2026
3.1.30 4 04/25/2026
3.1.29 3 04/25/2026
3.1.28 3 04/25/2026
3.1.27 3 04/25/2026
3.1.26 3 04/25/2026
3.1.25 3 04/25/2026
3.1.24 3 04/25/2026
3.1.23 3 04/25/2026
3.1.22 4 04/25/2026
3.1.21 3 04/25/2026
3.1.20 3 04/25/2026
3.1.19 3 04/25/2026
3.1.18 3 04/25/2026
3.1.17 3 04/25/2026
3.1.16 3 04/25/2026
3.1.15 3 04/25/2026
3.1.14 3 04/25/2026
3.1.13 4 04/25/2026
3.1.12 3 04/25/2026
3.1.11 3 04/25/2026
3.1.10 6 04/25/2026
3.1.9 3 04/25/2026
3.1.8 3 04/25/2026
3.1.7 3 04/25/2026
3.1.6 3 04/25/2026
3.1.5 3 04/25/2026
3.1.4 3 04/25/2026
3.1.3 3 04/25/2026
3.1.2 3 04/25/2026
3.1.1 3 04/25/2026
3.1.0 3 04/25/2026
3.1.0-preview3.19553.2 3 04/25/2026
3.1.0-preview2.19525.4 3 04/25/2026
3.1.0-preview1.19506.1 3 04/25/2026
3.0.3 3 04/25/2026
3.0.2 3 04/25/2026
3.0.1 3 04/25/2026
3.0.0 3 04/25/2026
3.0.0-rc1.19456.10 4 04/25/2026
3.0.0-preview9.19423.4 4 04/25/2026
3.0.0-preview8.19405.4 3 04/25/2026
3.0.0-preview7.19362.4 3 04/25/2026
3.0.0-preview6.19304.6 3 04/25/2026
3.0.0-preview5.19227.9 3 04/25/2026
3.0.0-preview4.19216.2 3 04/25/2026
3.0.0-preview3.19153.1 3 04/25/2026
3.0.0-preview.19074.2 3 04/25/2026
3.0.0-preview.18572.1 3 04/25/2026
2.2.0 3 04/25/2026
2.2.0-preview3-35497 3 04/25/2026
2.2.0-preview2-35157 3 04/25/2026
2.2.0-preview1-35029 3 04/25/2026
2.1.1 4 03/30/2026
2.1.0 3 04/25/2026
2.1.0-rc1-final 4 04/25/2026
2.1.0-preview2-final 3 04/25/2026
2.1.0-preview1-final 4 04/25/2026
2.0.2 4 04/25/2026
2.0.1 4 04/25/2026
2.0.0 3 04/25/2026
2.0.0-preview2-final 3 04/25/2026
2.0.0-preview1-final 3 04/25/2026
1.1.2 3 04/25/2026
1.1.1 3 04/25/2026
1.1.0 3 04/25/2026
1.1.0-preview1-final 3 04/25/2026
1.0.2 3 04/25/2026
1.0.1 3 04/25/2026
1.0.0 3 04/25/2026
1.0.0-rc2-final 3 04/25/2026
1.0.0-rc1-final 4 04/25/2026