想要将动态文件路径从主Web应用程序传递到单独的DLL。该DLL是使用NLog单独完成的

时间:2019-03-15 09:15:19

标签: c# nlog

这是我用来传递文件路径并从其他Web应用程序在DLL(类库)中的NLOG.config文件中提供文件路径以生成日志文件的代码。但是我无法做到这一点。

string filePath = path;
var target = (FileTarget)LogManager.Configuration.FindTargetByName("logFile");
target.FileName = "" + filePath + "/current.log";
    LogManager.ReconfigExistingLoggers();

1 个答案:

答案 0 :(得分:1)

通常,整个应用程序只有一个全局NLog.config。

与修改活动NLog-config中的单个目标相比,我认为修改NLog全局变量更容易。

https://github.com/NLog/NLog/wiki/Gdc-layout-renderer

https://github.com/NLog/NLog/wiki/Var-Layout-Renderer

您可以这样做:

<target type="file" filename="${gdc:item=MyAppPath}current.log" />

然后在启动时执行以下命令来修改GDC:

NLog.GlobalDiagnosticsContext.Set("MyAppPath", filePath + "/");