簡體   English   中英

如何在ASP .Net Core 2.2中為ILoggingBuilder創建配置擴展名?

[英]How can I create configure extension for ILoggingBuilder in ASP .Net Core 2.2?

我使用Asp .NET Core 2.2,並且需要登錄文件。 並嘗試使用ILoggerFactory:

 loggerFactory.AddProvider(new MyOwnFileLogProvider());

但:

loggerFactory.AddConsole();//This method is obsolete and will be removed in a future version.

好吧,拒絕所有工廠並使用:

WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .UseConfiguration(config)
                .UseKestrel()
                .ConfigureLogging(logging =>
                {
                    logging.ClearProviders();
                    logging.AddConsole();
                });

如何為ILoggingBuilder創建配置擴展以進行文件記錄?

logging.AddFile();

不推薦使用logger工廠方法,而希望使用新的日志記錄構建器,該構建器完全簡化了依賴項注入容器。 為您自己的記錄器提供程序創建記錄器構建器擴展並不難。

您基本上只需ILoggerProvider服務集合添加一個ILoggerProvider

public static ILoggingBuilder AddConsole(this ILoggingBuilder builder)
{
    builder.Services.AddSingleton<ILoggerProvider, CustomLoggerProvider>();

    return builder;
}

除了通過依賴注入來解析提供程序之外,您還可以直接注冊實例。 也有一個內置擴展方法AddProvider可以做到這一點。 因此,您也可以使用它:

public static ILoggingBuilder AddConsole(this ILoggingBuilder builder)
{
    builder.AddProvider(new CustomLoggerProvider>());

    return builder;
}

這應該使用法使用ILoggerFactory的用法非常相似

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM