Мне нужно написать журнал событий для каждого экземпляра класса для разделения файла. Исторически проект использует NLog для регистрации, поэтому я хочу, чтобы попытаться решения этого вопроса с помощью NLog (я нашел подобную тему Unique log file for each instance of class, но предлагает использовать log4net)Отдельный файл журнала для конкретного экземпляра класса с использованием NLog
В настоящее время я получаю экземпляр регистратору, как это:
public static Logger GetInstanceLogger(string name, bool init = false)
{
if (!LogManager.Configuration.AllTargets.Any(t => t.Name == name))
{
var target = new FileTarget();
target.Name = name;
target.FileName = string.Format("logs/{0}.${{shortdate}}.log", name);
target.Layout =
"${date:format=dd.MM.yyyy HH\\:mm\\:ss.fff} thread[${threadid}] ${logger} (${level:uppercase=true}): ${message}. ${exception:format=ToString}";
var config = init ? new LoggingConfiguration() : LogManager.Configuration;
config.AddTarget(name, target);
var ruleInfo = new LoggingRule("*", LogLevel.Trace, target);
config.LoggingRules.Add(ruleInfo);
LogManager.Configuration = config;
LogManager.ReconfigExistingLoggers();
}
var logger = LogManager.GetLogger(name);
return logger;
}
Сейчас он записывает один и тот же журнал во все файлы (я полагаю, это вызвано уровнем журнала). Есть ли способ выполнить эту задачу с помощью NLog?
Спасибо.