Как вы передаете каталог в NLog.config? - PullRequest
0 голосов
/ 12 сентября 2018

Существует глобальная переменная, которую пользователь может установить, чтобы определить, где NLog будет регистрировать файлы. Однако я не знаю, как передать эту переменную в NLog.config.

Я бы хотел использовать его как ${basedir}, но вместо этого иметь значение ${userdir}. Я думаю, что это выполнимо без необходимости передавать переменную, используя event-properties каждый раз, когда я регистрируюсь, но я не знаю как. Я хотел бы определить это один раз, когда я пишу

static private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();

Кто-нибудь знает, выполнимо ли это?

1 Ответ

0 голосов
/ 12 сентября 2018

Существует несколько способов передачи (контекста) информации в NLog.Я думаю, что в этом случае "GDC" (GlobalDiagnosticsContext) является лучшим способом:

Установите в своем коде:

GlobalDiagnosticsContext.Set("userdir", myDirectory);

Использование в nlog.config:

 <target name="file" xsi:type="File"
         fileName="${gdc:item=userdir}/${shortdate}.log" ... />

См. Документы GDC

...