.NET核心环境中的托管服务日志记录LogLevel

时间:2019-04-10 10:56:15

标签: logging .net-core asp.net-core-hosted-services

我使用以下代码创建了托管服务:

class Program
    {
        static async Task Main(string[] args)
        {

            await new HostBuilder()
                .ConfigureAppConfiguration((hostContext, configApp) =>
                    {
                        configApp.AddEnvironmentVariables(prefix: "SAMPLEHOST_");
                        configApp.AddCommandLine(args);
                    })
                .ConfigureServices((hostContext, services) =>
                    {
                        services.AddHostedService<SampleHostedService>();
                        services.AddHostedService<AnotherHostedService>();
                    })
                .ConfigureLogging((hostingContext, logging) => 
                    {
                        logging.AddConsole();
                    })
                .RunConsoleAsync();
        }
    }

...具有以下launchsettings.json

{
  "profiles": {
    "SampleHost.Cli": {
      "environmentVariables": {
        "LOGGING__LOGLEVEL__DEFAULT": "Debug",
      }
    }
  }
}

我似乎无法使它出现在控制台中。 :(

Logger.LogDebug("Hello debug");

我想仅根据环境变量来修改和调整LogLevel。我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

您可能需要这样的东西:

.ConfigureLogging((hostingContext, logging) => 
{
    logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
    logging.AddConsole();
})

答案 1 :(得分:-1)

我没有托管服务的经验,因此我不知道该帮助如何,但是,我确实在ASP.NET应用程序上工作,并将其添加到了 appsettings .json中。

  "Logging": {
   "LogLevel": {
    "Default": "Warning",
    "System": "Error",
    "Microsoft": "Error"
   },
   "Console": {
    "IncludeScopes": true
   }
  }