Microsoft.Extensions.Logging.Abstractions 11.0.0-preview.7.26381.103

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
MassTransit
MassTransit is a message-based distributed application framework for .NET http://masstransit-project.com
551
MassTransit.Extensions.Hosting
MassTransit configuration extensions using Microsoft.Extensions.Hosting.IHostedService and Microsoft.Extensions.DependencyInjection.
250
Microsoft.Extensions.Caching.Memory
In-memory cache implementation of Microsoft.Extensions.Caching.Memory.IMemoryCache.
254
Microsoft.Extensions.Caching.Memory
In-memory cache implementation of Microsoft.Extensions.Caching.Memory.IMemoryCache.
277
Microsoft.Extensions.Caching.Memory
In-memory cache implementation of Microsoft.Extensions.Caching.Memory.IMemoryCache.
326
Microsoft.Extensions.Hosting.Abstractions
Hosting and startup abstractions for applications.
395
Microsoft.Extensions.Hosting.Abstractions
.NET Core hosting and startup abstractions for applications.
295
Microsoft.Extensions.Hosting.Abstractions
.NET Core hosting and startup abstractions for applications.
485
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging.
261
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging.
325
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging.
347
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging.
354
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging.
440
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging. When using NuGet 3.x this package requires at least version 3.4.
311
Microsoft.IdentityModel.Tokens
Includes types that provide support for SecurityTokens, Cryptographic operations: Signing, Verifying Signatures, Encryption.
509
Npgsql
Npgsql is the open source .NET data provider for PostgreSQL.
259
Npgsql
Npgsql is the open source .NET data provider for PostgreSQL.
323
Serilog.Extensions.Hosting
Serilog support for .NET Core logging in hosted services
255
StackExchange.Redis
High performance Redis client, incorporating both synchronous and asynchronous usage.
278
StackExchange.Redis
High performance Redis client, incorporating both synchronous and asynchronous usage.
331

https://go.microsoft.com/fwlink/?LinkID=799421

.NET 10.0

.NET 11.0

  • No dependencies.

.NET Framework 4.6.2

.NET Standard 2.0

Version Downloads Last updated
11.0.0-preview.7.26381.103 12 08/12/2026
11.0.0-preview.6.26359.118 21 07/16/2026
11.0.0-preview.5.26302.115 24 06/09/2026
11.0.0-preview.4.26230.115 28 05/13/2026
11.0.0-preview.3.26207.106 53 04/14/2026
11.0.0-preview.2.26159.112 55 03/11/2026
11.0.0-preview.1.26104.118 60 02/11/2026
10.0.11 10 08/12/2026
10.0.10 17 07/17/2026
10.0.9 23 06/09/2026
10.0.8 32 05/13/2026
10.0.7 43 04/21/2026
10.0.6 47 04/14/2026
10.0.5 53 03/13/2026
10.0.4 45 03/11/2026
10.0.3 50 02/11/2026
10.0.2 58 01/13/2026
10.0.1 85 12/10/2025
10.0.0 96 11/11/2025
10.0.0-rc.2.25502.107 105 10/15/2025
10.0.0-rc.1.25451.107 129 09/09/2025
10.0.0-preview.7.25380.108 103 08/13/2025
10.0.0-preview.6.25358.103 121 07/16/2025
10.0.0-preview.5.25277.114 140 06/08/2025
10.0.0-preview.4.25258.110 148 05/15/2025
10.0.0-preview.3.25171.5 142 04/13/2025
10.0.0-preview.2.25163.2 153 04/01/2025
10.0.0-preview.1.25080.5 158 04/01/2025
9.0.19 14 08/12/2026
9.0.18 21 07/17/2026
9.0.17 24 06/09/2026
9.0.16 21 05/13/2026
9.0.15 45 04/14/2026
9.0.14 56 03/10/2026
9.0.13 61 02/11/2026
9.0.12 55 01/13/2026
9.0.11 77 11/11/2025
9.0.10 132 10/15/2025
9.0.9 119 09/09/2025
9.0.8 160 08/07/2025
9.0.7 130 07/09/2025
9.0.6 150 06/11/2025
9.0.5 138 05/17/2025
9.0.4 125 04/09/2025
9.0.3 152 03/25/2025
9.0.2 218 02/14/2025
9.0.1 128 02/08/2025
9.0.0 275 11/14/2024
9.0.0-rc.2.24473.5 140 10/19/2024
9.0.0-rc.1.24431.7 151 10/20/2024
9.0.0-preview.7.24405.7 168 08/22/2024
9.0.0-preview.6.24327.7 185 07/23/2024
9.0.0-preview.5.24306.7 158 07/21/2024
9.0.0-preview.4.24266.19 164 07/22/2024
9.0.0-preview.3.24172.9 178 07/23/2024
9.0.0-preview.2.24128.5 168 07/23/2024
9.0.0-preview.1.24080.9 175 07/23/2024
8.0.3 153 03/29/2025
8.0.2 391 10/21/2024
8.0.1 228 06/27/2024
8.0.0 541 02/04/2024
8.0.0-rc.2.23479.6 158 07/23/2024
8.0.0-rc.1.23419.4 158 07/22/2024
8.0.0-preview.7.23375.6 165 07/23/2024
8.0.0-preview.6.23329.7 172 07/23/2024
8.0.0-preview.5.23280.8 150 07/14/2024
8.0.0-preview.4.23259.5 166 07/23/2024
8.0.0-preview.3.23174.8 161 07/23/2024
8.0.0-preview.2.23128.3 155 07/23/2024
8.0.0-preview.1.23110.8 162 07/23/2024
7.0.1 165 07/22/2024
7.0.0 248 02/04/2024
7.0.0-rc.2.22472.3 170 07/23/2024
7.0.0-rc.1.22426.10 179 07/23/2024
7.0.0-preview.7.22375.6 152 07/19/2024
7.0.0-preview.6.22324.4 163 07/23/2024
7.0.0-preview.5.22301.12 181 07/23/2024
7.0.0-preview.4.22229.4 170 07/23/2024
7.0.0-preview.3.22175.4 155 07/20/2024
7.0.0-preview.2.22152.2 175 07/22/2024
7.0.0-preview.1.22076.8 160 07/23/2024
6.0.4 164 07/23/2024
6.0.3 150 07/23/2024
6.0.2 159 02/15/2024
6.0.2-mauipre.1.22102.15 133 01/02/2025
6.0.2-mauipre.1.22054.8 152 08/26/2024
6.0.1 153 07/17/2024
6.0.0 437 02/04/2024
6.0.0-rc.2.21480.5 151 07/23/2024
6.0.0-rc.1.21451.13 183 07/20/2024
6.0.0-preview.7.21377.19 159 07/23/2024
6.0.0-preview.6.21352.12 154 07/23/2024
6.0.0-preview.5.21301.5 151 07/23/2024
6.0.0-preview.4.21253.7 157 07/19/2024
6.0.0-preview.3.21201.4 165 07/23/2024
6.0.0-preview.2.21154.6 161 07/22/2024
6.0.0-preview.1.21102.12 154 07/18/2024
5.0.0 270 02/04/2024
5.0.0-rc.2.20475.5 161 07/14/2024
5.0.0-rc.1.20451.14 126 07/23/2024
5.0.0-preview.8.20407.11 159 07/23/2024
5.0.0-preview.7.20364.11 155 07/23/2024
5.0.0-preview.6.20305.6 179 07/23/2024
5.0.0-preview.5.20278.1 165 07/23/2024
5.0.0-preview.4.20251.6 164 07/23/2024
5.0.0-preview.3.20215.2 146 07/23/2024
5.0.0-preview.2.20160.3 151 07/23/2024
5.0.0-preview.1.20120.4 138 07/23/2024
3.1.32 150 07/23/2024
3.1.31 159 07/23/2024
3.1.30 154 07/18/2024
3.1.29 151 07/22/2024
3.1.28 166 07/23/2024
3.1.27 160 07/23/2024
3.1.26 145 07/23/2024
3.1.25 164 07/22/2024
3.1.24 165 07/23/2024
3.1.23 145 07/23/2024
3.1.22 151 07/23/2024
3.1.21 148 07/21/2024
3.1.20 176 07/23/2024
3.1.19 157 07/23/2024
3.1.18 635 02/04/2024
3.1.17 175 07/23/2024
3.1.16 158 07/23/2024
3.1.15 159 07/23/2024
3.1.14 166 07/23/2024
3.1.13 150 07/23/2024
3.1.12 157 07/23/2024
3.1.11 148 07/23/2024
3.1.10 154 07/23/2024
3.1.9 154 07/23/2024
3.1.8 300 02/04/2024
3.1.7 170 07/23/2024
3.1.6 169 02/28/2024
3.1.5 164 07/19/2024
3.1.4 157 07/23/2024
3.1.3 155 07/23/2024
3.1.2 173 07/23/2024
3.1.1 163 07/23/2024
3.1.0 153 07/23/2024
3.1.0-preview3.19553.2 165 07/21/2024
3.1.0-preview2.19525.4 163 07/23/2024
3.1.0-preview1.19506.1 161 07/23/2024
3.0.3 171 07/23/2024
3.0.2 158 07/23/2024
3.0.1 164 07/23/2024
3.0.0 151 07/23/2024
3.0.0-rc1.19456.10 160 07/23/2024
3.0.0-preview9.19423.4 147 07/23/2024
3.0.0-preview8.19405.4 141 07/23/2024
3.0.0-preview7.19362.4 156 07/23/2024
3.0.0-preview6.19304.6 146 07/23/2024
3.0.0-preview5.19227.9 161 07/14/2024
3.0.0-preview4.19216.2 153 07/23/2024
3.0.0-preview3.19153.1 158 07/18/2024
3.0.0-preview.19074.2 163 07/23/2024
3.0.0-preview.18572.1 146 07/20/2024
2.2.0 212 02/05/2024
2.2.0-preview3-35497 181 07/23/2024
2.2.0-preview2-35157 148 07/21/2024
2.2.0-preview1-35029 163 07/22/2024
2.1.1 711 02/04/2024
2.1.0 186 07/23/2024
2.1.0-rc1-final 145 07/23/2024
2.1.0-preview2-final 150 07/23/2024
2.1.0-preview1-final 153 07/23/2024
2.0.2 162 07/23/2024
2.0.1 176 07/21/2024
2.0.0 200 02/05/2024
2.0.0-preview2-final 145 07/23/2024
2.0.0-preview1-final 159 07/14/2024
1.1.2 144 07/23/2024
1.1.1 170 07/18/2024
1.1.0 152 07/21/2024
1.1.0-preview1-final 145 07/23/2024
1.0.2 161 07/23/2024
1.0.1 162 07/22/2024
1.0.0 147 07/23/2024
1.0.0-rc2-final 140 07/22/2024
1.0.0-rc1-final 154 07/19/2024