Установите папку ApplicationData в app.config и получите ее в Nlog.config - PullRequest
0 голосов
/ 12 февраля 2019

Я бы хотел указать путь к файлу журнала NLog в app.config.

Я знаю, как настроить папку applicationData для NLog.config.Это так:

<target xsi:type="File" 
    name="logFileCsv" 
    fileName="${specialfolder:folder=ApplicationData}/something/something.log">

И если я использую NLog.Extended, я знаю, как получить значения ключей из app.config и использовать их в NLog.config, например:

<target xsi:type="File" name="logFileCsv" fileName="${appsetting:name=LogPath">

И в app.config должен быть такой

<add key="LogPath" value="${APPDATA}/something/something.log" />

Но он работает не так, как я хочу.NLog создает файл журнала для c:\..\${APPDATA}/something/something.log"

Итак, я хотел бы знать, как настроить папку ApplicationData в app.config так, чтобы NLog понимал ее?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Я попробовал ответ Джулиана , но он не был полностью успешным:

Error FileTarget(Name=logFileCsv): Failed write to file '\\something\something.log

Однако с этой помощью и обходным путем я выяснил,как это сделать: Итак, в App.config просто добавьте окончательный путь:

<add key="LogPath" value="\something\something.log"/>

, а в NLog.Config я сделал это:

<target xsi:type="File" name="logFileCsv" fileName="${specialfolder:folder=ApplicationData}/${appsetting:name=LogPath}">

И теперь журнал записывается направильный путь: C: \ Users \ user \ AppData \ Roaming \ что-то \ something.log

0 голосов
/ 12 февраля 2019

К сожалению, ${appsetting} не будет оценивать значение.

Как можно обойти это:

<target fileName="${APPDATA}/${appsetting:name=LogPath}" />

примечание: перенос в $ {replace} также не будетработа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...