[解決済み] ASP.NET Coreの構成配列の設定を環境変数で上書きする方法
質問
ASP.NET Coreアプリの中で
appsettings.json
という設定ファイルがあり、JSON 配列を使用して設定のコレクションを構成しています。
環境変数を使用して配列オブジェクトの1つの設定をオーバーライドするにはどうすればよいですか。
背景
私は
セリログ
をASP.NET Coreアプリケーションで使用しています。
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"
}
}
}
デプロイ時に、いくつかの設定を上書きしたいのですが、例えば 最小レベル やログ ファイルへのパスなどです。私は Azure App Service にデプロイしているので、Azure 管理ポータルを介してアプリの設定を使用します (これらは環境変数として実現されます)。
私は簡単に
MinimumLevel
という名前の環境変数を追加することで
Serilog:MinimumLevel
という名前の環境変数と、アプリケーション名
Serilog:Properties:Application
.
設定を配列で指定する場合の書式は?
どのように解決するのですか?
デバッガで設定を見た後、私は答えを見つけました。
-
Serilog__WriteTo__0__Args__path
(すべてのプラットフォーム) -
Serilog:WriteTo:0:Args:path
(Windows) -
Serilog--WriteTo--0--Args--path
(ソースはAzure Key Vaultから)
注意 の構成は、ASP.NET Coreの のドキュメントがこれをカバーするようになりました。
だから、配列のインデックス(ゼロベース)を名前のように使う必要があるんだ。
以下はデバッガのスクリーンショットです、また(おかげさまで Victor Hurdugaci をコメントで紹介) ユニットテスト は例を探すのに良い場所です。
関連
-
[解決済み] GIMPでグリッドの間隔とオフセットを変更できない
-
[解決済み】Vagrantの「デフォルト」マシン名を変更する方法とは?
-
[解決済み】Nginx 403エラー:[folder]のディレクトリインデックスが禁止されています。
-
[解決済み】NginxのFastCGIでゲートウェイのタイムアウトを防ぐには?
-
[解決済み】IntelliJで開くエディターの最大数を増やすには?
-
[解決済み] Dockerのenvファイルに相当するKubernetesの機能
-
[解決済み] Gradleにおけるコンパイル設定と実行時設定の違いについて
-
[解決済み] Vim Line Number Coloringの設定
-
[解決済み] コンフィグファイルがプログラミング言語になるのはどの時点?
-
[解決済み] ASP.NET Coreで環境変数を読み込む
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] GIMPでグリッドの間隔とオフセットを変更できない
-
[解決済み】Vagrantの「デフォルト」マシン名を変更する方法とは?
-
[解決済み】Nginx 403エラー:[folder]のディレクトリインデックスが禁止されています。
-
[解決済み】NginxのFastCGIでゲートウェイのタイムアウトを防ぐには?
-
[解決済み】Nginxの$hostと$http_hostの違いは何ですか?
-
[解決済み】IntelliJで開くエディターの最大数を増やすには?
-
[解決済み] Dockerのenvファイルに相当するKubernetesの機能
-
[解決済み] Gradleにおけるコンパイル設定と実行時設定の違いについて
-
[解決済み] Vim Line Number Coloringの設定
-
[解決済み] コンフィグファイルがプログラミング言語になるのはどの時点?