Microsoft.Extensions.Logging.Abstractions 8.0.1

前缀已保留
此包有可用的更新预发行版本。
请查看下方的版本列表以获取详细信息。
dotnet add package Microsoft.Extensions.Logging.Abstractions --version 8.0.1                
NuGet\Install-Package Microsoft.Extensions.Logging.Abstractions -Version 8.0.1                
此命令旨在在Visual Studio的包管理器控制台中使用,因为它使用了NuGet模块版本的Install-Package
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.1" />                
对于支持PackageReference的项目,将此XML节点复制到项目文件以引用此包。
paket add Microsoft.Extensions.Logging.Abstractions --version 8.0.1                
#r "nuget: Microsoft.Extensions.Logging.Abstractions, 8.0.1"                
#r指令可用于F# Interactive和Polyglot Notebooks。将此复制到交互式工具或脚本的源代码中,以引用此包。
// Install Microsoft.Extensions.Logging.Abstractions as a Cake Addin
#addin nuget:?package=Microsoft.Extensions.Logging.Abstractions&version=8.0.1

// Install Microsoft.Extensions.Logging.Abstractions as a Cake Tool
#tool nuget:?package=Microsoft.Extensions.Logging.Abstractions&version=8.0.1                

关于

Microsoft.Extensions.Logging.Abstractions提供了日志的抽象。该包中定义的接口由Microsoft.Extensions.Logging和其他日志库中的类实现。

此包包含一个日志源生成器,可生成用于日志消息方法的高效和优化代码。

主要功能

  • 定义主要的日志抽象接口,如 ILogger、ILoggerFactory、ILoggerProvider 等。

如何使用

自定义日志提供者实现示例
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();
        }
    }
}

创建日志

// 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);
        }
    }
}

使用源生成器
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);
}

主要类型

本库提供的主要类型包括

  • Microsoft.Extensions.Logging.ILogger
  • Microsoft.Extensions.Logging.ILoggerProvider
  • Microsoft.Extensions.Logging.ILoggerFactory
  • Microsoft.Extensions.Logging.ILogger
  • Microsoft.Extensions.Logging.LogLevel
  • Microsoft.Extensions.Logging.Logger
  • Microsoft.Extensions.Logging.LoggerMessage
  • Microsoft.Extensions.Logging Abrams

附加文档

反馈与贡献

Microsoft.Extensions.Logging Abrams 以开源形式发布,许可协议为 MIT 协议。欢迎提交错误报告和贡献至 GitHub 仓库

产品 兼容和额外的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 兼容。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 兼容。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 已计算。
.NET Framework net461 已计算。 net462 兼容。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。

NuGet 包 (8.5K)

显示依赖 Microsoft.Extensions.Logging.Abstractions 的前 5 个 NuGet 包

下载
Microsoft.Extensions.Logging

Microsoft.Extensions.Logging 的默认日志基础设施实现。

Microsoft.Extensions.Hosting.Abstractions

应用程序的宿主和服务启动抽象。

Microsoft.Extensions.Caching.Memory

Microsoft.Extensions.Caching.Memory.IMemoryCache的内存缓存实现。

Microsoft.Extensions.Logging.Configuration

为Microsoft.Extensions.Logging提供配置支持。

Microsoft.Extensions.Http

HttpClient工厂是一个以组合方式配置和检索名为HttpClient的模式。HttpClient工厂提供了扩展,可以将解决跨域关注点(如服务位置、负载均衡和可靠性)的DelegatingHandlers插入其中。默认的HttpClient工厂提供了内置的故障排除和日志记录,并以高效的方式管理连接的生存期。常用类型:System.Net.Http.IHttpClientFactory

GitHub仓库 (586)

显示依赖Microsoft.Extensions.Logging Abrams的前5个最受欢迎的GitHub仓库

仓库 恒星
microsoft/PowerToys
Windows系统工具,可最大化生产力
jellyfin/jellyfin
免费软件媒体系统
dotnet/maui
.NET MAUI是.NET跨平台App UI,是一个用于构建覆盖移动、平板和桌面原生应用的框架。
microsoft/semantic-kernel
快速轻松地将尖端LLM技术集成到您的应用程序中
dotnet/roslyn
Roslyn .NET编译器为C#和Visual Basic语言提供了丰富的代码分析API。
版本 下载 最后更新
9.0.0-preview.7.24405.7 3,348 8/13/2024
9.0.0-preview.6.24327.7 84,341 7/9/2024
9.0.0-preview.5.24306.7 85,078 6/11/2024
9.0.0-preview.4.24266.19 78,282 5/21/2024
9.0.0-preview.3.24172.9 194,233 4/11/2024
9.0.0-preview.2.24128.5 127,310 3/12/2024
9.0.0-preview.1.24080.9 136,708 2/13/2024
8.0.1 28,493,347 3/12/2024
8.0.0 105,747,125 11/14/2023
8.0.0-rc.2.23479.6 1,512,286 10/10/2023
8.0.0-rc.1.23419.4 985,909 9/12/2023
8.0.0-preview.7.23375.6 478,282 8/8/2023
8.0.0-preview.6.23329.7 362,160 7/11/2023
8.0.0-preview.5.23280.8 255,024 6/13/2023
8.0.0-preview.4.23259.5 422,195 5/16/2023
8.0.0-preview.3.23174.8 331,381 4/11/2023
8.0.0-preview.2.23128.3 312,736 3/14/2023
8.0.0-preview.1.23110.8 293,880 2/21/2023
7.0.1 58,816,664 6/13/2023
7.0.0 215,243,025 11/7/2022
7.0.0-rc.2.22472.3 890,150 10/11/2022
7.0.0-rc.1.22426.10 416,532 9/14/2022
7.0.0-preview.7.22375.6 414,859 8/9/2022
7.0.0-preview.6.22324.4 240,924 7/12/2022
7.0.0-preview.5.22301.12 170,654 6/14/2022
7.0.0-preview.4.22229.4 448,213 5/10/2022
7.0.0-preview.3.22175.4 182,436 4/13/2022
7.0.0-preview.2.22152.2 232,570 3/14/2022
7.0.0-preview.1.22076.8 170,714 2/17/2022
6.0.4 30,977,278 6/13/2023
6.0.3 44,296,358 11/7/2022
6.0.2 41,153,161 9/13/2022
6.0.1 146,187,417 3/8/2022
6.0.0 483,084,571 11/8/2021
6.0.0-rc.2.21480.5 1,760,108 10/12/2021
6.0.0-rc.1.21451.13 576,863 9/14/2021
6.0.0-preview.7.21377.19 790,268 8/10/2021
6.0.0-preview.6.21352.12 334,649 7/14/2021
6.0.0-preview.5.21301.5 275,326 6/15/2021
6.0.0-preview.4.21253.7 177,562 5/24/2021
6.0.0-preview.3.21201.4 568,147 4/8/2021
6.0.0-preview.2.21154.6 224,039 3/11/2021 6.0.0-preview.2.21154.6 已弃用,因为它不再维护。
6.0.0-preview.1.21102.12 531,524 2/12/2021 6.0.0-preview.1.21102.12 已弃用,因为它不再维护。
5.0.0 466,352,396 11/9/2020 5.0.0 已弃用,因为它不再维护。
5.0.0-rc.2.20475.5 1,046,779 10/13/2020 5.0.0-rc.2.20475.5 已弃用,因为它不再维护。
5.0.0-rc.1.20451.14 597,978 9/14/2020 5.0.0-rc.1.20451.14 已弃用,因为它不再维护。
5.0.0-preview.8.20407.11 483,552 8/25/2020 5.0.0-preview.8.20407.11 已弃用,因为它不再维护。
5.0.0-preview.7.20364.11 239,961 7/21/2020 5.0.0-preview.7.20364.11 已弃用,因为它不再维护。
5.0.0-preview.6.20305.6 141,566 6/25/2020 5.0.0-preview.6.20305.6 已弃用,因为它不再维护。
5.0.0-preview.5.20278.1 64,911 6/10/2020 5.0.0-preview.5.20278.1 已弃用,因为它不再维护。
5.0.0-preview.4.20251.6 305,656 5/18/2020 5.0.0-preview.4.20251.6 已弃用,因为它不再维护。
5.0.0-preview.3.20215.2 232,615 4/23/2020 5.0.0-preview.3.20215.2 已弃用,因为它不再维护。
5.0.0-preview.2.20160.3 311,110 4/2/2020 5.0.0-preview.2.20160.3 已弃用,因为它不再维护。
5.0.0-preview.1.20120.4 164,755 3/16/2020 5.0.0-preview.1.20120.4 已弃用,因为它不再维护。
3.1.32 16,324,286 12/13/2022
3.1.31 3,245,243 11/8/2022
3.1.30 2,144,832 10/11/2022
3.1.29 2,220,733 9/13/2022
3.1.28 5,784,795 8/9/2022
3.1.27 2,193,598 7/12/2022
3.1.26 3,923,070 6/14/2022
3.1.25 3,122,615 5/10/2022
3.1.24 3,508,482 4/11/2022
3.1.23 4,400,389 3/8/2022
3.1.22 16,721,122 12/14/2021
3.1.21 9,431,377 11/7/2021
3.1.20 4,938,986 10/11/2021
3.1.19 5,260,372 9/14/2021
3.1.18 56,401,315 8/10/2021
3.1.17 6,974,499 7/13/2021
3.1.16 15,389,334 6/8/2021
3.1.15 8,114,381 5/11/2021
3.1.14 13,652,564 4/6/2021
3.1.13 13,362,440 3/9/2021
3.1.12 11,919,597 2/9/2021
3.1.11 19,152,010 1/12/2021
3.1.10 26,689,785 11/9/2020
3.1.9 74,131,587 10/13/2020
3.1.8 230,149,208 9/8/2020
3.1.7 40,975,066 8/11/2020
3.1.6 45,152,879 7/14/2020
3.1.5 45,896,686 6/9/2020
3.1.4 51,962,075 5/12/2020
3.1.3 101,912,459 3/24/2020
3.1.2 78,085,252 2/18/2020
3.1.1 43,218,945 1/14/2020
3.1.0 161,219,133 12/3/2019
3.1.0-preview3.19553.2 1,759,703 11/13/2019 3.1.0-preview3.19553.2 已弃用,因为它不再维护。
3.1.0-preview2.19525.4 105,605 11/1/2019 3.1.0-preview2.19525.4 已弃用,因为它不再维护。
3.1.0-preview1.19506.1 1,228,332 10/15/2019 3.1.0-preview1.19506.1 已被弃用,因为它不再维护。
3.0.3 135,493,693 2/18/2020 3.0.3 已被弃用,因为它不再维护。
3.0.2 1,143,177 1/14/2020 3.0.2 已被弃用,因为它不再维护。
3.0.1 6,993,682 11/18/2019 3.0.1 已被弃用,因为它不再维护。
3.0.0 124,460,536 9/23/2019 3.0.0 已被弃用,因为它不再维护。
3.0.0-rc1.19456.10 166,180 9/16/2019 3.0.0-rc1.19456.10 已被弃用,因为它不再维护。
3.0.0-preview9.19423.4 1,640,835 9/4/2019 3.0.0-preview9.19423.4 已被弃用,因为它不再维护。
3.0.0-preview8.19405.4 590,626 8/13/2019 3.0.0-preview8.19405.4 已被弃用,因为它不再维护。
3.0.0-preview7.19362.4 202,893 7/23/2019 3.0.0-preview7.19362.4 已被弃用,因为它不再维护。
3.0.0-preview6.19304.6 441,351 6/12/2019 3.0.0-preview6.19304.6 已被弃用,因为它不再维护。
3.0.0-preview5.19227.9 758,078 5/6/2019 3.0.0-preview5.19227.9 已被弃用,因为它不再维护。
3.0.0-preview4.19216.2 53,405 4/18/2019 3.0.0-preview4.19216.2 已被弃用,因为它不再维护。
3.0.0-preview3.19153.1 385,579 3/6/2019 3.0.0-preview3.19153.1 已被弃用,因为它不再维护。
3.0.0-preview.19074.2 175,345 1/29/2019 3.0.0-preview.19074.2 已被弃用,因为它不再维护。
3.0.0-preview.18572.1 159,976 12/4/2018 3.0.0-preview.18572.1 已弃用,因为它不再维护。
2.2.0 507,477,167 12/3/2018 2.2.0 已弃用,因为它不再维护。
2.2.0-preview3-35497 549,707 10/17/2018 2.2.0-preview3-35497 已弃用,因为它不再维护。
2.2.0-preview2-35157 553,854 9/12/2018 2.2.0-preview2-35157 已弃用,因为它不再维护。
2.2.0-preview1-35029 249,525 8/22/2018 2.2.0-preview1-35029 已弃用,因为它不再维护。
2.1.1 412,235,917 6/18/2018
2.1.0 447,801,618 5/29/2018
2.1.0-rc1-final 634,619 5/6/2018 2.1.0-rc1-final 已弃用,因为它不再维护。
2.1.0-preview2-final 805,839 4/10/2018 2.1.0-preview2-final 已弃用,因为它不再维护。
2.1.0-preview1-final 839,891 2/26/2018 2.1.0-preview1-final 已弃用,因为它不再维护。
2.0.2 35,948,378 5/7/2018 2.0.2 已弃用,因为它不再维护。
2.0.1 49,955,209 3/13/2018 2.0.1 已弃用,因为它不再维护。
2.0.0 402,588,631 8/11/2017 2.0.0 已弃用,因为它不再维护。
2.0.0-preview2-final 411,042 6/28/2017 2.0.0-preview2-final 已弃用,因为它不再维护。
2.0.0-preview1-final 1,140,390 5/10/2017 2.0.0-preview1-final 已弃用,因为它不再维护。
1.1.2 28,477,085 5/9/2017 1.1.2 已弃用,因为它不再维护。
1.1.1 44,192,746 3/6/2017 1.1.1 已弃用,因为它不再维护。
1.1.0 20,083,599 11/16/2016 1.1.0 已弃用,因为它不再维护。
1.1.0-preview1-final 205,977 10/24/2016 1.1.0-preview1-final 已弃用,因为它不再维护。
1.0.2 122,898,441 3/6/2017 1.0.2 已弃用,因为它不再维护。
1.0.1 4,767,340 12/12/2016 1.0.1 已弃用,因为它不再维护。
1.0.0 53,303,399 6/27/2016 1.0.0 已弃用,因为它不再维护。
1.0.0-rc2-final 2,167,961 5/16/2016 1.0.0-rc2-final 已弃用,因为它不再维护。
1.0.0-rc1-final 880,337 11/18/2015 1.0.0-rc1-final 已弃用,因为它不再维护。