c# - 为什么每个人都使用带有 ASP.Net Core 的 ILogger 的记录器包?

标签 c# asp.net-core logging

对于日志记录,开发人员使用日志记录包,例如:Nlog、SeriLog、...
而 asp.net 核心有 Microsoft.Extenstions.Logging.ILogger ?
ILogger asp.net core 记录日志?
如果 ILogger可以记录日志,没有任何其他包不是更好吗?
如果 ILogger可以记录日志,那为什么开发者不单独使用呢?
如果 ILogger不能单独记录日志和其他软件包一样,那么 ILogger 有什么好处?与其他日志记录包一起使用而不是单独使用一个日志记录包?

最佳答案

默认情况下,ASP.NET Core 使用 Microsoft.Extensions.Logging.ILogger .
因此调用 CreateDefaultBuilder,它会添加以下日志记录提供程序:

  • 控制台
  • 调试
  • 事件源
  • 事件日志:仅限 Windows

  • 代码示例:
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
                     {
                         webBuilder.UseStartup<Startup>();
                     });
    
    来源:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1
    所以一般来说每个项目都有自己的需求和需求,所以开发者可以选择哪个更适合项目需求。
    其他记录器提供商,如 Nlog、SeriLog、Asure、...
    可以提供不同的日志主题、灵活的配置、登录到文件等默认ASP.NET Core不具备的功能。
    ILogger 和 ILoggerProvider 接口(interface)和附加包的安装可以灵活地添加其他记录器提供程序。
    ILoggerProvider 接口(interface)
    https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.iloggerprovider?view=dotnet-plat-ext-3.1
    希望我得到很好的回答。

    关于c# - 为什么每个人都使用带有 ASP.Net Core 的 ILogger 的记录器包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62788813/

    相关文章:

    c# - 使用依赖注入(inject)测试 TypeFilterAttribute

    c# - 如何将表达式编译成实际结果?

    c# - 如何在 html 中创建与 ASP.NET 中的中继器中的 Linkbutton 相同的链接

    asp.net-core - 带有 Angular 5 的 ASP.NET Core -- 何时使用 Assets 文件夹与 wwwroot 文件夹?

    java - 如何在 eclipse-rcp 应用程序中使用 org.apache.logging.log4j.jul.LogManager?

    c# - Naudio,如何判断播放完成

    c# - 30 分钟后 Azure 函数超时

    asp.net-core - 如何获取用户的组/角色名称

    java - 在 Android 上使用 Apache LogFactory

    java - Java中的Singleton Logger可以记录日志方法来自哪个类并记录到多个区域/机器