如何配置“ appsettings日志记录”部分以使用过滤器定义提供程序?

时间:2019-05-31 14:21:06

标签: c# asp.net-core logging azure-web-sites

我想将日志记录添加到天蓝色的Blob。我使用AddAzureWebAppDiagnostics将诊断信息记录到Blob中。

它工作正常,但是我想将一些特殊信息(业务信息)放入另一个Blob。

在我的控制器中,我用ILogger创建了category == "BusinessLogger"

这使我可以为该类别创建过滤器,但不能在 appsettings 中配置提供程序和过滤器,以为类别添加另一个带有过滤器的BlobLoggerProvider

是否有可能开箱即用,无需附加代码?

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost
        .CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .ConfigureLogging((hostingContext, logging) =>
        {
            logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
            logging.AddConsole();
            logging.AddDebug();
            logging.AddAzureWebAppDiagnostics();
            //logging.AddProvider(new BlobLoggerProvider(hostingContext.Configuration.GetSection(...)));
            logging.AddFilter((provider, category, logLevel) => {
                if (provider == "Microsoft.Extensions.Logging.AzureAppServices.Internal.BlobLoggerProvider")
                {
                    return category == "BusinessLogger";
                }
                return true;
            });

        })
        .UseApplicationInsights();

0 个答案:

没有答案