Хотите передать динамический путь к файлу из основного веб-приложения в отдельную DLL. Эта DLL отдельно делается с помощью NLog - PullRequest
0 голосов
/ 15 марта 2019

Это код, который я использую для передачи пути к файлу и предоставления пути к файлу в файле NLOG.config в DLL (библиотеке классов) из другого веб-приложения для создания файла журнала.Но я не могу этого сделать.

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

1 Ответ

1 голос
/ 15 марта 2019

Обычно для всего приложения существует только один глобальный NLog.config.

Вместо того, чтобы изменять отдельные цели в активной конфигурации NLog, я думаю, что проще изменить глобальные переменные 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 + "/");
...