如何将目录传递到NLog.config?

时间:2018-09-12 19:56:08

标签: c# nlog

用户可以设置一个全局变量来定义NLog记录文件的位置。但是,我不知道如何将该变量传递给NLog.config

我希望能够像${basedir}一样使用它,而是使用${userdir}。我认为这是可行的,而不必每次登录时都使用event-properties传递变量,但是我不知道该怎么做。我想在写

时定义一次
static private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();

有人知道这是否可行吗?

1 个答案:

答案 0 :(得分:1)

有几种方法可以将信息传递给NLog。我认为在这种情况下,“ GDC”(GlobalDiagnosticsContext)是最好的方法:

设置您的代码:

GlobalDiagnosticsContext.Set("userdir", myDirectory);

在nlog.config中的用法:

 <target name="file" xsi:type="File"
         fileName="${gdc:item=userdir}/${shortdate}.log" ... />

请参见GDC docs