NLog ProgramData路径

5

当NLog.config有绝对路径时,一切都运作良好:

 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  autoReload="true"
  internalLogLevel="Info"
  internalLogFile="F:\ProgramData\MyApp\myfolder\nlog.txt">

如果我尝试使用specialfolder变量,它将无法正常工作:

internalLogFile="${specialfolder:folder=CommonApplicationData}\MyApp\myfolder\nlog.txt">

我应该使用什么 NLog.config 路径来使 NLog 使用 ProgramData 文件夹,而不使用绝对路径

我在 Windows 7 上使用 NLog v. 2.0。

2个回答

3

您不能在internalLogFile属性中使用布局渲染器${...}。它们仅用于目标的布局:

<target layout="${...}" />

尝试使用相对路径,例如 "..\myfolder\nlog.txt"


1
是的,对于目标它有效。对于internalLogFile,我也无法使用相对路径使其工作。尽管如此,+1是因为您清楚地表明渲染器${...}仅适用于目标。谢谢! - rem
1
这段内容虽然没有回答问题 :( - DanielV

2

根据NLog特殊文件夹

fileName="${specialfolder:folder=ApplicationData}/Program/file.txt"

可能会起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接