Я создал размещенную службу со следующим кодом:
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
исключительно переменную среды. Я что-то пропустил?
У меня нет опыта работы с размещенными службами, поэтому я не знаю, поможет ли это, но я работал над приложением ASP.NET и добавил это в настройки приложения.json.
"Logging": {
"LogLevel": {
"Default": "Warning",
"System": "Error",
"Microsoft": "Error"
},
"Console": {
"IncludeScopes": true
}
}
Вероятно, вам нужно что-то вроде этого:
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddConsole();
})
Моя первая попытка не сработала, но изменение переменной среды на "SAMPLEHOST_LOGGING__LOGLEVEL__DEFAULT": "Debug"
сработало. Обратите внимание, чтобы не забыть префикс. Спасибо за это. :)
Извините, я указал, что это должно быть сделано с помощью переменной среды.