C# 为什么每个人都使用带有ASP.NETCore ILogger的日志程序包?
对于日志记录,开发人员使用诸如Nlog、SeriLog等日志记录包。。。 而asp.net核心具有Microsoft.Extenstions.Logging.ILogger asp.net核心记录日志的C# 为什么每个人都使用带有ASP.NETCore ILogger的日志程序包?,c#,asp.net-core,logging,C#,Asp.net Core,Logging,对于日志记录,开发人员使用诸如Nlog、SeriLog等日志记录包。。。 而asp.net核心具有Microsoft.Extenstions.Logging.ILogger asp.net核心记录日志的ILogger 如果ILogger可以记录日志,那么在没有任何其他包的情况下使用它不是更好吗? 如果ILogger可以记录日志,那么为什么开发人员不单独使用它呢 如果ILogger不能单独记录日志,而其他软件包可以记录日志,那么与其他日志软件包一起使用而不是单独使用一个日志软件包的ILogger的
ILogger
如果ILogger
可以记录日志,那么在没有任何其他包的情况下使用它不是更好吗?
如果ILogger可以记录日志,那么为什么开发人员不单独使用它呢
如果ILogger
不能单独记录日志,而其他软件包可以记录日志,那么与其他日志软件包一起使用而不是单独使用一个日志软件包的ILogger
的好处是什么
.NET Core支持与各种内置和第三方日志提供商一起使用的日志API。本文展示了如何将日志API与内置提供程序一起使用
这为您提供了灵活性和附加功能。默认情况下,ASP.NET核心使用Microsoft.Extensions.Logging.ILogger 因此,调用CreateDefaultBuilder,它将添加以下日志提供程序:
- 控制台
- 调试
- 事件源
- 事件日志:仅限Windows
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.UseStartup();
});
资料来源:
所以一般来说,每个项目都有自己的需求,所以开发人员可以选择哪个更适合项目需求。
其他记录器提供商,如Nlog、SeriLog、Asure等。。。
可以提供不同的日志主题、灵活的配置、登录到文件以及默认ASP.NET核心不具备的其他功能。
ILogger和ILogger Provider接口以及附加软件包的安装具有添加其他记录器提供程序的灵活性
iLogger提供程序接口
希望我的回答很好。
ILogger
只是一个界面。你可以使用框架自己的界面,但是你的应用程序会被这些界面“锁定”。也就是说,以后更改日志框架是一项艰巨的任务。如果您使用MSILogger
接口,您可以通过任何适合您需求的框架轻松地支持它,并在以后轻松地对其进行更改,因为您需要更改的只是依赖项注入配置中的一些行,并创建合适的记录器配置。例如,ILogger
是围绕结构化日志设计的[Log.LogDebug(“MyVar是{Something}”,MyVar)
vsLog.LogDebug($“MyVar是{MyVar}”)
],它实际上并不在本地支持它(基本上执行字符串格式)。您可以使用一个支持结构化日志记录(如Serilog)的框架,并使用它来支持ILogger
,而无需更改您正在编写代码的接口。感谢您的回答。那么asp.net core在没有任何包的情况下就不会使用本机日志记录程序?为此,我们可以使用日志记录包或编写自定义日志记录框架作业。我说的对吗?欢迎光临,AspNetCore提供了控制台日志,因此您可以确定您需要安装或编写自己的软件包。