Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

C#. Можно ли используя NLog передать в него значение переменной из кода C#

Имеется некий Updater на C# с используемой библиотекой NLog Updater получает пакеты для обновлений из папок содержащие в своем имени номер версии, например название папки 3.0.14
Допустим в Updater'e была выбрана версия 3.0.14, он будет в дальнейшем работать только с этой папкой и брать оттуда пакеты для обновления окружения.
Вопрос: как заставить NLog писать лог в папку с выбранной версией для обновления, в моем примере хотелось бы писать лог в директорию .../3.0.14/Logs/log-file.txt
Можно ли это сделать с NLog?
Сейчас NLog настроен следующим образом:

В коде:
private static readonly Logger Log = LogManager.GetCurrentClassLogger();


Ответ

Можно настроить NLOG кодом, чтобы он писал строго куда задано и никто не мог переназначить это дело:
var config = new LoggingConfiguration(); var fileTarget = new FileTarget(); config.AddTarget("file", fileTarget); fileTarget.FileName = @"${basedir}/${processname}_${date:format=yyyy_MM_dd}.log"; fileTarget.Layout = @"${date:format=HH\:mm\:ss} ${processid} ${threadid} ${logger} ${message}"; var rule2 = new LoggingRule("*", LogLevel.Debug, fileTarget); config.LoggingRules.Add(rule2); LogManager.Configuration = config;

Комментариев нет:

Отправить комментарий