LT;DRCome ignorare un ambiente array di configurazione ASP.NET core utilizzando le variabili d'ambiente
In un'applicazione ASP.NET Nucleo Ho un file di configurazione appsettings.json
che utilizza una matrice JSON per configurare una serie di impostazioni.
Come sovrascrivere un'impostazione di uno degli oggetti array utilizzando le variabili di ambiente?
Sfondo
Sto utilizzando serilog in un'applicazione ASP.NET nucleo e con il Serilog.Settings.Configuration, per consentirgli di essere configurato tramite appsettings.json
.
La configurazione è simile a questo:
{
"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"
}
}
}
Quando schierato voglio ignorare alcune delle impostazioni, per esempio MinimumLevel e il percorso del file di registro. La mia opzione preferita è di farlo tramite variabili di ambiente mentre sto distribuendo su un servizio app di Azure, quindi utilizzerò le impostazioni dell'app attraverso il portale di gestione di Azure (queste sono realizzate come variabili di ambiente).
posso facilmente impostare il MinimumLevel con l'aggiunta di una variabile d'ambiente con il nome: Serilog:MinimumLevel
e il nome dell'applicazione Serilog:Properties:Application
.
Qual è il formato per specificare un'impostazione con un array?
Ho avuto lo stesso problema - non ho potuto resistere alla magia di nomi, due punti e gli indici degli array (Serilog: WriteTo: 0: Args: percorso) e un paio di mesi fa ho scritto un nuovo fornitore di configurazione per rendere questo tipo di configurazione più semplice - https://github.com/dsbenghe/NotMicrosoft.Configuration – Dumitru