Ведение журнала размещенной службы .NET Core LogLevel в переменной среды - PullRequest
0 голосов
/ 10 апреля 2019

Я создал размещенную службу со следующим кодом:

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 ]

1 голос
/ 10 апреля 2019

Возможно, вам нужно что-то вроде этого:

.ConfigureLogging((hostingContext, logging) => 
{
    logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
    logging.AddConsole();
})
0 голосов
/ 10 апреля 2019

У меня нет опыта работы с размещенными сервисами, поэтому я не знаю, поможет ли это, но я работал над приложением ASP.NET и добавил его в appsettings .json.

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