我想在app.config上设置NLog日志文件的路径。
我知道如何在NLog.config上设置applicationData文件夹。就像那样:
<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"
上创建日志文件
那么,我想知道如何将app.config上的ApplicationData文件夹设置为NLog可以理解?
不幸的是,${appsetting}
不会评估价值。
你可以做的工作:
<target fileName="${APPDATA}/${appsetting:name=LogPath}" />
注意:换入$ {replace}也行不通
我尝试了answer of Julian,但它没有完全成功:
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 \ something.log