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

问题描述 投票:1回答:1

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

我希望能够像${basedir}一样使用它,而是让它成为${userdir}。我认为这是可行的,而不必每次登录时使用event-properties传递变量,但我不知道如何。我写的时候想定义一次

static private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();

有谁知道这是否可行?

c# nlog
1个回答
1
投票

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

在您的代码中设置:

GlobalDiagnosticsContext.Set("userdir", myDirectory);

在nlog.config中的用法:

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

GDC docs

© www.soinside.com 2019 - 2024. All rights reserved.