LT;DRКак переопределить настройки массива конфигурации ASP.N Co, используя переменные среды
В приложении ASP.NET ядра У меня есть файл appsettings.json
конфигурации, который использует массив JSON для настройки набора параметров.
Как переопределить параметр одного из объектов массива, используя переменные среды?
фон
Я использую serilog в основном приложении ASP.NET и с помощью Serilog.Settings.Configuration, чтобы его настроить с помощью appsettings.json
.
Конфигурация такова:
{
"Serilog": {
"Using": ["Serilog.Sinks.Literate"],
"MinimumLevel": "Debug",
"WriteTo": [
{ "Name": "File", "Args": { "path": "%TEMP%\\Logs\\serilog-configuration-sample.txt" } }
],
"Enrich": ["FromLogContext", "WithMachineName", "WithThreadId"],
"Properties": {
"Application": "Sample"
}
}
}
При развертывании Я хочу, чтобы переопределить некоторые настройки, например MinimumLevel и путь к файлу журнала. Мой предпочтительный вариант - это сделать это через переменные среды, поскольку я развертываю службу Azure App, поэтому я буду использовать настройки приложения через портал управления Azure (они реализуются как переменные среды).
можно легко установить MinimumLevel путем добавления переменной окружения с именем: Serilog:MinimumLevel
и имя приложения Serilog:Properties:Application
.
Каков формат задания параметра с помощью массива?
У меня была такая же проблема - я не мог стоять магию имен, двоеточиями и индексов массива (Serilog: WriteTo: 0: ARGS: путь) и пару месяцев назад я написал новый поставщик конфигурации упростить эту конфигурацию - https://github.com/dsbenghe/NotMicrosoft.Configuration – Dumitru