繁体   English   中英

在app.config上设置ApplicationData文件夹,并在Nlog.config上获取它

[英]Set ApplicationData folder on app.config and get it on Nlog.config

我想在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"上创建日志文件c:\\..\\${APPDATA}/something/something.log"

因此,我想知道如何将app.config上的ApplicationData文件夹设置为NLog可以理解的?

不幸的是${appsetting}不会评估值。

解决此问题时,您可以:

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

注意:使用$ {replace}换行也将不起作用

我尝试了朱利安(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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM