Microsoft.Extensions.Logging 8.0.0

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

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

关于

Microsoft.Extensions.Logging 与在 Microsoft.Extensions.Logging.Abstractions 下的核心日志抽象结合使用。此抽象在以下基本内置实现中可用,例如控制台、事件日志和调试(Debug.WriteLine)日志。

主要特点

  • 提供ILoggerFactory的具体实现
  • 提供用于服务集合、日志构建器和活动跟踪的扩展方法
  • 提供用于日志构建器的日志过滤扩展方法

使用方法

在.NET 6之前,我们只有两种可能的日志记录形式,即使用Microsoft.Extensions.Logging

public class LoggingSample1
{
    private ILogger _logger;

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

    public void LogMethod(string name)
    {
        _logger.LogInformation("Hello {name}", name);
    }
}

以下是一些使用LogInformationLogWarning等的问题示例

  1. 我们可以通过这些API提供事件ID,但它们在今天是可选的。这会导致在实际系统中想要响应或检测特定事件日志问题的系统出现不良使用
  2. 传递的参数在 LogLevel 检查之前处理;这导致即使在禁用日志级别时,也需要触发布 refine的代码路径。
  3. 它需要每次使用时解析消息字符串以查找要替换的模板。

由于这些问题,推荐的更高效的运行时方法是通过使用LoggerMessage.Define API,如下面的LoggingSample2示例所示。

public class LoggingSample2
{
    private ILogger _logger;

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

    public void LogMethod(string name)
    {
        Log.LogName(_logger, name);
    }

    private static class Log
    {
        private static readonly Action<ILogger, string, Exception> _logName = LoggerMessage.Define<string>(LogLevel.Information, 0, @"Hello {name}");

        public static void LogName(ILogger logger, string name)
        {
            _logName(logger, name, null!);
        }
    }
}

为了在性能和可用性之间取得平衡,我们在.NET 6中添加了编译时日志源生成器功能,有关更多信息以及如何使用源生成器创建日志消息,请查看此文档


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);
}
ActivityTrackingOptions的行李和标签

.NET 5.0公开了一个新功能,允许通过配置ActivityTrackingOption来配置日志构建器,将跟踪上下文的Span Id、Trace Id、Parent Id、Trace state和Trace flags添加到日志作用域。跟踪上下文通常携带在Activity.Current中。

.NET 6.0预览版1扩展了此功能,包括更多跟踪上下文属性,即行李和标签

  var loggerFactory = LoggerFactory.Create(logging =>
  {
      logging.Configure(options =>
      {
          options.ActivityTrackingOptions = ActivityTrackingOptions.Tags | ActivityTrackingOptions.Baggage;
      }).AddSimpleConsole(options =>
      {
          options.IncludeScopes = true;
      });
  });

主要类型

此库提供的主要类型有

  • LoggingServiceCollectionExtensions
  • LoggerFactory
  • LoggerFactoryOptions
  • LoggingBuilderExtensions
  • ActivityTrackingOptions
  • FilterLoggingBuilderExtensions

附加文档

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

反馈与贡献

Microsoft.Extensions.Logging是在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 包 (5.2K)

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

下载
Microsoft.EntityFrameworkCore

Entity Framework Core 是 .NET 的现代对象-数据库映射器。它支持 LINQ 查询、更改跟踪、更新和模式迁移。EF Core 通过提供程序插件 API 与 SQL Server、Azure SQL Database、SQLite、Azure Cosmos DB、MySQL、PostgreSQL 和其他数据库一起工作。常用类型:Microsoft.EntityFrameworkCore.DbContext Microsoft.EntityFrameworkCore.DbSet

Microsoft.Extensions.Logging.Configuration

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

Microsoft.Extensions.Http

HttpClient工厂是用于以组合方式配置和检索命名HttpClient的模式。HttpClient工厂提供可扩展性以插入解决跨领域关注点(如服务定位、负载平衡和可靠性)的DelegatingHandlers。默认HttpClient工厂提供内置的故障诊断和日志记录,并高效地管理连接的生命周期。常用类型:System.Net.Http.IHttpClientFactory

Microsoft.Extensions.Logging.Console

为Microsoft.Extensions.Logging提供的控制台日志提供者实现。

Microsoft.Extensions.Logging.Debug

Microsoft.Extensions.Logging的调试输出日志提供者实现。此日志通过使用System.Diagnostics.Debug.WriteLine()写入消息将消息记录到调试监视器。

GitHub仓库 (600)

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

仓库 星星
microsoft/PowerToys
最大化生产力的Windows系统工具
files-community/Files
构建最好的Windows文件管理器
jellyfin/jellyfin
免费软件媒体系统
dotnet/maui
.NET MAUI是.NET Multi-platform App UI,是一个用于构建跨移动、平板和桌面原生设备的框架。
microsoft/semantic-kernel
快速轻松地将最前沿的LLM技术集成到您的应用中
版本 下载 最后更新
9.0.0-preview.7.24405.7 3,060 8/13/2024
9.0.0-preview.6.24327.7 72,142 7/9/2024
9.0.0-preview.5.24306.7 68,321 6/11/2024
9.0.0-preview.4.24266.19 68,738 5/21/2024
9.0.0-preview.3.24172.9 180,231 4/11/2024
9.0.0-preview.2.24128.5 110,861 3/12/2024
9.0.0-preview.1.24080.9 115,570 2/13/2024
8.0.0 99,093,475 11/14/2023
8.0.0-rc.2.23479.6 1,329,443 10/10/2023
8.0.0-rc.1.23419.4 848,512 9/12/2023
8.0.0-preview.7.23375.6 417,183 8/8/2023
8.0.0-preview.6.23329.7 301,639 7/11/2023
8.0.0-preview.5.23280.8 217,133 6/13/2023
8.0.0-preview.4.23259.5 372,978 5/16/2023
8.0.0-preview.3.23174.8 296,383 4/11/2023
8.0.0-preview.2.23128.3 285,034 3/14/2023
8.0.0-preview.1.23110.8 208,583 2/21/2023
7.0.0 196,222,918 11/7/2022
7.0.0-rc.2.22472.3 402,244 10/11/2022
7.0.0-rc.1.22426.10 359,742 9/14/2022
7.0.0-preview.7.22375.6 342,192 8/9/2022
7.0.0-preview.6.22324.4 163,053 7/12/2022
7.0.0-preview.5.22301.12 147,876 6/14/2022
7.0.0-preview.4.22229.4 328,178 5/10/2022
7.0.0-preview.3.22175.4 155,662 4/13/2022
7.0.0-preview.2.22152.2 201,737 3/14/2022
7.0.0-preview.1.22076.8 105,845 2/17/2022
6.0.0 431,361,226 11/8/2021
6.0.0-rc.2.21480.5 1,304,204 10/12/2021
6.0.0-rc.1.21451.13 485,974 9/14/2021
6.0.0-preview.7.21377.19 336,373 8/10/2021
6.0.0-preview.6.21352.12 257,380 7/14/2021
6.0.0-preview.5.21301.5 238,795 6/15/2021
6.0.0-preview.4.21253.7 119,264 5/24/2021
6.0.0-preview.3.21201.4 523,357 4/8/2021
6.0.0-preview.2.21154.6 191,785 3/11/2021 6.0.0-preview.2.21154.6 已弃用,因为它不再维护。
6.0.0-preview.1.21102.12 212,547 2/12/2021 6.0.0-preview.1.21102.12 已被弃用,因为它不再维护。
5.0.0 419,068,976 11/9/2020 5.0.0 已被弃用,因为它不再维护。
5.0.0-rc.2.20475.5 608,386 10/13/2020 5.0.0-rc.2.20475.5 已被弃用,因为它不再维护。
5.0.0-rc.1.20451.14 503,329 9/14/2020 5.0.0-rc.1.20451.14 已被弃用,因为它不再维护。
5.0.0-preview.8.20407.11 449,100 8/25/2020 5.0.0-preview.8.20407.11 已被弃用,因为它不再维护。
5.0.0-preview.7.20364.11 213,245 7/21/2020 5.0.0-preview.7.20364.11 已被弃用,因为它不再维护。
5.0.0-preview.6.20305.6 87,517 6/25/2020 5.0.0-preview.6.20305.6 已被弃用,因为它不再维护。
5.0.0-preview.5.20278.1 54,212 6/10/2020 5.0.0-preview.5.20278.1 已被弃用,因为它不再维护。
5.0.0-preview.4.20251.6 219,034 5/18/2020 5.0.0-preview.4.20251.6 已被弃用,因为它不再维护。
5.0.0-preview.3.20215.2 202,202 4/23/2020 5.0.0-preview.3.20215.2 已被弃用,因为它不再维护。
5.0.0-preview.2.20160.3 219,470 4/2/2020 5.0.0-preview.2.20160.3 已被弃用,因为它不再维护。
5.0.0-preview.1.20120.4 79,309 3/16/2020 5.0.0-preview.1.20120.4 已被弃用,因为它不再维护。
3.1.32 8,259,159 12/13/2022
3.1.31 1,826,345 11/8/2022
3.1.30 1,943,360 10/11/2022
3.1.29 1,752,828 9/13/2022
3.1.28 2,228,174 8/9/2022
3.1.27 1,696,894 7/12/2022
3.1.26 1,506,287 6/14/2022
3.1.25 2,449,457 5/10/2022
3.1.24 1,626,944 4/11/2022
3.1.23 2,869,169 3/8/2022
3.1.22 13,489,589 12/14/2021
3.1.21 6,231,188 11/7/2021
3.1.20 3,629,309 10/11/2021
3.1.19 4,518,837 9/14/2021
3.1.18 38,703,206 8/10/2021
3.1.17 5,538,306 7/13/2021
3.1.16 9,269,904 6/8/2021
3.1.15 6,725,642 5/11/2021
3.1.14 8,932,315 4/6/2021
3.1.13 11,621,942 3/9/2021
3.1.12 9,551,104 2/9/2021
3.1.11 11,180,090 1/12/2021
3.1.10 19,516,441 11/9/2020
3.1.9 61,802,100 10/13/2020
3.1.8 56,751,725 9/8/2020
3.1.7 29,472,286 8/11/2020
3.1.6 34,300,739 7/14/2020
3.1.5 34,080,550 6/9/2020
3.1.4 37,883,640 5/12/2020
3.1.3 80,724,557 3/24/2020
3.1.2 68,537,145 2/18/2020
3.1.1 36,963,188 1/14/2020
3.1.0 133,971,509 12/3/2019
3.1.0-preview3.19553.2 218,893 11/13/2019 3.1.0-preview3.19553.2 已被弃用,因为它不再维护。
3.1.0-preview2.19525.4 70,827 11/1/2019 3.1.0-preview2.19525.4 已被弃用,因为它不再维护。
3.1.0-preview1.19506.1 1,136,961 10/15/2019 3.1.0-preview1.19506.1 已弃用,因为它不再得到维护。
3.0.3 61,406,162 2/18/2020 3.0.3 已弃用,因为它不再得到维护。
3.0.2 1,033,952 1/14/2020 3.0.2 已弃用,因为它不再得到维护。
3.0.1 4,373,837 11/18/2019 3.0.1 已弃用,因为它不再得到维护。
3.0.0 81,349,910 9/23/2019 3.0.0 已弃用,因为它不再得到维护。
3.0.0-rc1.19456.10 84,527 9/16/2019 3.0.0-rc1.19456.10 已弃用,因为它不再得到维护。
3.0.0-preview9.19423.4 1,451,666 9/4/2019 3.0.0-preview9.19423.4 已弃用,因为它不再得到维护。
3.0.0-preview8.19405.4 526,592 8/13/2019 3.0.0-preview8.19405.4 已弃用,因为它不再得到维护。
3.0.0-preview7.19362.4 153,629 7/23/2019 3.0.0-preview7.19362.4 已弃用,因为它不再得到维护。
3.0.0-preview6.19304.6 297,989 6/12/2019 3.0.0-preview6.19304.6 已弃用,因为它不再得到维护。
3.0.0-preview5.19227.9 737,895 5/6/2019 3.0.0-preview5.19227.9 已弃用,因为它不再得到维护。
3.0.0-preview4.19216.2 47,905 4/18/2019 3.0.0-preview4.19216.2 已弃用,因为它不再得到维护。
3.0.0-preview3.19153.1 319,006 3/6/2019 3.0.0-preview3.19153.1 已弃用,因为它不再得到维护。
3.0.0-preview.19074.2 162,451 1/29/2019 3.0.0-preview.19074.2 已弃用,因为它不再维护。
3.0.0-preview.18572.1 140,773 12/4/2018 3.0.0-preview.18572.1 已弃用,因为它不再维护。
2.2.0 213,607,174 12/3/2018 2.2.0 已弃用,因为它不再维护。
2.2.0-preview3-35497 373,457 10/17/2018 2.2.0-preview3-35497 已弃用,因为它不再维护。
2.2.0-preview2-35157 247,005 9/12/2018 2.2.0-preview2-35157 已弃用,因为它不再维护。
2.2.0-preview1-35029 138,200 8/22/2018 2.2.0-preview1-35029 已弃用,因为它不再维护。
2.1.1 310,384,560 6/18/2018
2.1.0 291,437,381 5/29/2018
2.1.0-rc1-final 519,936 5/6/2018 2.1.0-rc1-final 已弃用,因为它不再维护。
2.1.0-preview2-final 499,722 4/10/2018 2.1.0-preview2-final 已弃用,因为它不再维护。
2.1.0-preview1-final 595,967 2/26/2018 2.1.0-preview1-final 已弃用,因为它不再维护。
2.0.2 22,783,095 5/7/2018 2.0.2 已弃用,因为它不再维护。
2.0.1 40,732,441 3/13/2018 2.0.1 已弃用,因为它不再维护。
2.0.0 298,643,628 8/11/2017 2.0.0 已弃用,因为它不再维护。
2.0.0-preview2-final 331,749 6/28/2017 2.0.0-preview2-final 已弃用,因为它不再维护。
2.0.0-preview1-final 1,110,218 5/10/2017 2.0.0-preview1-final 已弃用,因为它不再维护。
1.1.2 15,577,727 5/9/2017 1.1.2 已弃用,因为它不再维护。
1.1.1 27,985,062 3/6/2017 1.1.1 已弃用,因为它不再维护。
1.1.0 14,653,520 11/16/2016 1.1.0 已弃用,因为它不再维护。
1.1.0-preview1-final 174,015 10/24/2016 1.1.0-preview1-final 已弃用,因为它不再维护。
1.0.2 76,963,459 3/6/2017 1.0.2 已弃用,因为它不再维护。
1.0.1 4,452,738 12/12/2016 1.0.1 已弃用,因为它不再维护。
1.0.0 24,021,661 6/27/2016 1.0.0 已弃用,因为它不再维护。
1.0.0-rc2-final 1,813,084 5/16/2016 1.0.0-rc2-final 已弃用,因为它不再维护。
1.0.0-rc1-final 644,810 11/18/2015 1.0.0-rc1-final 已弃用,因为它不再维护。