如何从.net Core 2.2中的appsettings.json中读取日志配置

Mir*_*hat 2 .net c# .net-core

在.net Core 2.1中,它是这样完成的

var loggingConfig = configuration.GetSection("Logging");
loggerFactory.AddConsole(loggingConfig);
Run Code Online (Sandbox Code Playgroud)

我已经将其移动到ConfigureServices,现在我得到了

错误CS1503参数2:无法从“ Microsoft.Extensions.Configuration.IConfigurationSection”转换为“ System.Action Microsoft.Extensions.Logging.Console.ConsoleLoggerOptions”

Moh*_*esh 5

基于此,您可能必须更改配置应用程序的方式:

var webHost = new WebHostBuilder()
        .UseKestrel()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .ConfigureAppConfiguration((hostingContext, config) =>
        {
            var env = hostingContext.HostingEnvironment;
            config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                  .AddJsonFile($"appsettings.{env.EnvironmentName}.json", 
                      optional: true, reloadOnChange: true);
            config.AddEnvironmentVariables();
        })
        .ConfigureLogging((hostingContext, logging) =>
        {
            logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
            logging.AddConsole();
            logging.AddDebug();
            logging.AddEventSourceLogger();
        })
        .UseStartup<Startup>()
        .Build();

    webHost.Run();
Run Code Online (Sandbox Code Playgroud)

1个 Microsoft ASP.NET Core 2.2记录文档