2016-11-28 6 views
1

私はASP.NET Coreで私の新しいプロジェクトを開始しました。私は質問があります。asp.netコアのappsettings.jsonのbasedir

私は2つのロガー持っている: a)にnLog、それはnlog.configファイルに B設定だ持っている)serilog、それはこの時点でappsettings.json

に設定だ持って、私は、格納するための2箇所を持っていますログ: fileNameに= "$ {BASEDIR} /ログ/ EPR/nlog - すべて - $ {shortdate} .logに - nLog "SerilogFile": "ログ/ serilog- {日付} .txtファイル" - serilog

マイ質問は、どのように取得するbasedirカタログappsettings.jsonファイル。

答えて

1

1つのオプションは、起動時にベースパスで環境変数を設定することです:

Environment.SetEnvironmentVariable("BASEDIR", AppDomain.CurrentDomain.BaseDirectory); 

次に、設定で"%BASEDIR%/logs/serilog-{Date}.txt"を使用してください。

1

ショート:あなたはappsettings.jsonに参加できません。

ロング:静的なPlatformServicesクラスを使用してコード内で行うことができます。その後、

PlatformServices.Default.Application.ApplicationBasePath; 

て交換使用するか、またはあなたが、あなたのロガーの設定に渡し、ApplicationBasePathによって返された値で${basedir}を交換するフィットに見えるものは何でも。

追記:彼らはテストする静的および悪いですので、あなたがなど、Startup/ProgrammクラスのPlatformServices外では使用しないでください

+0

ええ、これは不可能であることが悪いです:( – zchpit

関連する問題