2016-11-28 4 views
1

Я начал свой новый проект в ASP.NET Core, и у меня есть вопрос.basedir в appsettings.json в asp.net core

У меня 2 лесорубов: а) NLog, что у его конфигурации в файле nlog.config б) serilog, которые имеют это в конфигурации appsettings.json

На данный момент у меня есть 2 места для хранения журналы: FileName = "$ {BaseDir}/журналы/EPR/Nlog-все - $ {shortdate} .log - NLog "SerilogFile": "журналы/serilog- {Дата} .txt" - serilog

Мои вопрос есть, как получить basedir каталог в appsettings.json файл.

ответ

1

Один из вариантов, чтобы установить переменное окружение с основным путем при запуске:

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

Затем используйте "%BASEDIR%/logs/serilog-{Date}.txt" в конфигурации.

1

Short: Вы не можете использовать appsettings.json.

Дольше: Вы можете ввести код через статический класс PlatformServices.

PlatformServices.Default.Application.ApplicationBasePath; 

, а затем использовать заменить или что вы, кажется, подходит для замены ${basedir} со значением возвращенного ApplicationBasePath, а затем передать его в конфигурацию регистраторов.

Sidenote: Вы не должны использовать PlatformServices вне класса Startup/Programm, так как они являются статическими и плохо для тестирования и т.д.

+0

Эх, это плохо, что это невозможно :( – zchpit

Смежные вопросы