在NLog文件路径中使用app data目录

时间:2013-11-20 23:15:30

标签: logging nlog

如何在NLog.config文件中设置target以在用户应用程序数据目录中创建日志文件?

以下是文件的理想位置。

  

C:\ Users \用户的用户ID \应用程序数据\本地... \ LOGFILE.TXT

我尝试以下列方式设置fileName但没有成功。

  • target name="logfile" xsi:type="File" fileName="%APPDATA%/.../LogFile.txt"

  • target name="logfile" xsi:type="File" fileName="${APPDATA}/.../LogFile.txt"

  • target name="logfile" xsi:type="File" fileName="${%APPDATA%}/.../LogFile.txt"

4 个答案:

答案 0 :(得分:41)

您可以通过创建这样的目标来实现这一目标:

<target name="logfile" xsi:type="File"
    fileName="${specialfolder:folder=ApplicationData}/LogFile.txt"/>

可以找到文档here

我希望这会有所帮助。

答案 1 :(得分:5)

接受的答案不会在 AppData \ Local 目录中创建日志文件,而是在 AppData \ Roaming 目录中创建日志文件。 根据OP要求在AppData \ Local 中创建日志文件,您必须在specialfolder路径中使用 LocalApplicationData

<target name="logfile" xsi:type="File"
    fileName="${specialfolder:folder=LocalApplicationData}/ApplicationLogs/LogFile.txt"/>

答案 2 :(得分:3)

除了Jacco的答案之外,如果您希望将日志与可能存储在appdata中的其他数据分开保存,您可以在路径中添加文件夹名称,如下所示:

fileName="${specialfolder:folder=ApplicationData}/Logs/LogFile.txt"/>

答案 3 :(得分:-5)

您还可以使用以下内容:

    <target name ="file_name" xsi:type="File" filename="${basedir}/file_name.txt"></target>

此处 $ {basedir} 表示您当前的工作目录(应用程序正在运行的位置)。