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

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
539
MassTransit.Extensions.Hosting
MassTransit configuration extensions using Microsoft.Extensions.Hosting.IHostedService and Microsoft.Extensions.DependencyInjection.
234
Microsoft.Extensions.Caching.Memory
In-memory cache implementation of Microsoft.Extensions.Caching.Memory.IMemoryCache.
232
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.
302
Microsoft.Extensions.Hosting.Abstractions
Hosting and startup abstractions for applications.
376
Microsoft.Extensions.Hosting.Abstractions
.NET Core hosting and startup abstractions for applications.
274
Microsoft.Extensions.Hosting.Abstractions
.NET Core hosting and startup abstractions for applications.
467
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging.
238
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging.
293
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging.
323
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging.
332
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging.
417
Microsoft.Extensions.Logging
Logging infrastructure default implementation for Microsoft.Extensions.Logging. When using NuGet 3.x this package requires at least version 3.4.
298
Microsoft.IdentityModel.Tokens
Includes types that provide support for SecurityTokens, Cryptographic operations: Signing, Verifying Signatures, Encryption.
456
Npgsql
Npgsql is the open source .NET data provider for PostgreSQL.
242
Npgsql
Npgsql is the open source .NET data provider for PostgreSQL.
310
Serilog.Extensions.Hosting
Serilog support for .NET Core logging in hosted services
242
StackExchange.Redis
High performance Redis client, incorporating both synchronous and asynchronous usage.
258
StackExchange.Redis
High performance Redis client, incorporating both synchronous and asynchronous usage.
313

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.4.26230.115 15 05/13/2026
11.0.0-preview.3.26207.106 23 04/14/2026
11.0.0-preview.2.26159.112 31 03/11/2026
11.0.0-preview.1.26104.118 38 02/11/2026
10.0.8 14 05/13/2026
10.0.7 26 04/21/2026
10.0.6 26 04/14/2026
10.0.5 31 03/13/2026
10.0.4 30 03/11/2026
10.0.3 34 02/11/2026
10.0.2 38 01/13/2026
10.0.1 63 12/10/2025
10.0.0 70 11/11/2025
10.0.0-rc.2.25502.107 83 10/15/2025
10.0.0-rc.1.25451.107 108 09/09/2025
10.0.0-preview.7.25380.108 83 08/13/2025
10.0.0-preview.6.25358.103 105 07/16/2025
10.0.0-preview.5.25277.114 116 06/08/2025
10.0.0-preview.4.25258.110 128 05/15/2025
10.0.0-preview.3.25171.5 123 04/13/2025
10.0.0-preview.2.25163.2 132 04/01/2025
10.0.0-preview.1.25080.5 131 04/01/2025
9.0.16 7 05/13/2026
9.0.15 23 04/14/2026
9.0.14 30 03/10/2026
9.0.13 38 02/11/2026
9.0.12 37 01/13/2026
9.0.11 58 11/11/2025
9.0.10 102 10/15/2025
9.0.9 101 09/09/2025
9.0.8 139 08/07/2025
9.0.7 112 07/09/2025
9.0.6 133 06/11/2025
9.0.5 115 05/17/2025
9.0.4 105 04/09/2025
9.0.3 131 03/25/2025
9.0.2 199 02/14/2025
9.0.1 109 02/08/2025
9.0.0 246 11/14/2024
9.0.0-rc.2.24473.5 123 10/19/2024
9.0.0-rc.1.24431.7 127 10/20/2024
9.0.0-preview.7.24405.7 145 08/22/2024
9.0.0-preview.6.24327.7 168 07/23/2024
9.0.0-preview.5.24306.7 133 07/21/2024
9.0.0-preview.4.24266.19 145 07/22/2024
9.0.0-preview.3.24172.9 156 07/23/2024
9.0.0-preview.2.24128.5 152 07/23/2024
9.0.0-preview.1.24080.9 152 07/23/2024
8.0.3 129 03/29/2025
8.0.2 364 10/21/2024
8.0.1 205 06/27/2024
8.0.0 516 02/04/2024
8.0.0-rc.2.23479.6 138 07/23/2024
8.0.0-rc.1.23419.4 140 07/22/2024
8.0.0-preview.7.23375.6 138 07/23/2024
8.0.0-preview.6.23329.7 148 07/23/2024
8.0.0-preview.5.23280.8 126 07/14/2024
8.0.0-preview.4.23259.5 142 07/23/2024
8.0.0-preview.3.23174.8 140 07/23/2024
8.0.0-preview.2.23128.3 133 07/23/2024
8.0.0-preview.1.23110.8 142 07/23/2024
7.0.1 140 07/22/2024
7.0.0 218 02/04/2024
7.0.0-rc.2.22472.3 150 07/23/2024
7.0.0-rc.1.22426.10 161 07/23/2024
7.0.0-preview.7.22375.6 134 07/19/2024
7.0.0-preview.6.22324.4 143 07/23/2024
7.0.0-preview.5.22301.12 165 07/23/2024
7.0.0-preview.4.22229.4 153 07/23/2024
7.0.0-preview.3.22175.4 134 07/20/2024
7.0.0-preview.2.22152.2 153 07/22/2024
7.0.0-preview.1.22076.8 138 07/23/2024
6.0.4 143 07/23/2024
6.0.3 130 07/23/2024
6.0.2 143 02/15/2024
6.0.2-mauipre.1.22102.15 114 01/02/2025
6.0.2-mauipre.1.22054.8 133 08/26/2024
6.0.1 133 07/17/2024
6.0.0 402 02/04/2024
6.0.0-rc.2.21480.5 133 07/23/2024
6.0.0-rc.1.21451.13 161 07/20/2024
6.0.0-preview.7.21377.19 142 07/23/2024
6.0.0-preview.6.21352.12 137 07/23/2024
6.0.0-preview.5.21301.5 131 07/23/2024
6.0.0-preview.4.21253.7 139 07/19/2024
6.0.0-preview.3.21201.4 144 07/23/2024
6.0.0-preview.2.21154.6 141 07/22/2024
6.0.0-preview.1.21102.12 133 07/18/2024
5.0.0 253 02/04/2024
5.0.0-rc.2.20475.5 142 07/14/2024
5.0.0-rc.1.20451.14 108 07/23/2024
5.0.0-preview.8.20407.11 133 07/23/2024
5.0.0-preview.7.20364.11 136 07/23/2024
5.0.0-preview.6.20305.6 159 07/23/2024
5.0.0-preview.5.20278.1 147 07/23/2024
5.0.0-preview.4.20251.6 141 07/23/2024
5.0.0-preview.3.20215.2 126 07/23/2024
5.0.0-preview.2.20160.3 130 07/23/2024
5.0.0-preview.1.20120.4 121 07/23/2024
3.1.32 132 07/23/2024
3.1.31 138 07/23/2024
3.1.30 134 07/18/2024
3.1.29 135 07/22/2024
3.1.28 151 07/23/2024
3.1.27 141 07/23/2024
3.1.26 124 07/23/2024
3.1.25 144 07/22/2024
3.1.24 148 07/23/2024
3.1.23 126 07/23/2024
3.1.22 130 07/23/2024
3.1.21 130 07/21/2024
3.1.20 153 07/23/2024
3.1.19 135 07/23/2024
3.1.18 614 02/04/2024
3.1.17 158 07/23/2024
3.1.16 143 07/23/2024
3.1.15 142 07/23/2024
3.1.14 151 07/23/2024
3.1.13 128 07/23/2024
3.1.12 138 07/23/2024
3.1.11 129 07/23/2024
3.1.10 135 07/23/2024
3.1.9 132 07/23/2024
3.1.8 281 02/04/2024
3.1.7 151 07/23/2024
3.1.6 149 02/28/2024
3.1.5 143 07/19/2024
3.1.4 139 07/23/2024
3.1.3 136 07/23/2024
3.1.2 148 07/23/2024
3.1.1 141 07/23/2024
3.1.0 136 07/23/2024
3.1.0-preview3.19553.2 149 07/21/2024
3.1.0-preview2.19525.4 145 07/23/2024
3.1.0-preview1.19506.1 143 07/23/2024
3.0.3 152 07/23/2024
3.0.2 140 07/23/2024
3.0.1 142 07/23/2024
3.0.0 136 07/23/2024
3.0.0-rc1.19456.10 142 07/23/2024
3.0.0-preview9.19423.4 137 07/23/2024
3.0.0-preview8.19405.4 120 07/23/2024
3.0.0-preview7.19362.4 135 07/23/2024
3.0.0-preview6.19304.6 127 07/23/2024
3.0.0-preview5.19227.9 143 07/14/2024
3.0.0-preview4.19216.2 134 07/23/2024
3.0.0-preview3.19153.1 135 07/18/2024
3.0.0-preview.19074.2 140 07/23/2024
3.0.0-preview.18572.1 127 07/20/2024
2.2.0 191 02/05/2024
2.2.0-preview3-35497 160 07/23/2024
2.2.0-preview2-35157 130 07/21/2024
2.2.0-preview1-35029 145 07/22/2024
2.1.1 686 02/04/2024
2.1.0 166 07/23/2024
2.1.0-rc1-final 126 07/23/2024
2.1.0-preview2-final 133 07/23/2024
2.1.0-preview1-final 136 07/23/2024
2.0.2 143 07/23/2024
2.0.1 149 07/21/2024
2.0.0 180 02/05/2024
2.0.0-preview2-final 125 07/23/2024
2.0.0-preview1-final 138 07/14/2024
1.1.2 121 07/23/2024
1.1.1 145 07/18/2024
1.1.0 130 07/21/2024
1.1.0-preview1-final 129 07/23/2024
1.0.2 139 07/23/2024
1.0.1 141 07/22/2024
1.0.0 127 07/23/2024
1.0.0-rc2-final 122 07/22/2024
1.0.0-rc1-final 135 07/19/2024