Я пытаюсь понять, что является правильным поведением для захвата свойств с повторяющимися именами отверстий в соответствии с синтаксисом шаблонов сообщений , который реализован в NLog.
Давайте рассмотрим пример .
Запись на консоль с повторяющимися именами отверстий, но количество параметров меньше, чем количество имен.
// Targets where to log to: File and Console
var logconsole = new NLog.Targets.ConsoleTarget("logconsole");
config.AddRule(global::NLog.LogLevel.Debug, global::NLog.LogLevel.Fatal, logconsole);
// Apply config
NLog.LogManager.Configuration = config;
NLog.LogManager.GetLogger("A").Info("hello from {a} {b} {a}", 1, 2);
Результат:
2020-05-26 09: 47: 37.5013 | ИНФОРМАЦИЯ | A | привет от {a} {b} {a}
Замены нет!
Запись на консоль с повторяющимися именами отверстий с одинаковым количеством параметров.
// Targets where to log to: File and Console
var logconsole = new NLog.Targets.ConsoleTarget("logconsole");
config.AddRule(global::NLog.LogLevel.Debug, global::NLog.LogLevel.Fatal, logconsole);
// Apply config
NLog.LogManager.Configuration = config;
NLog.LogManager.GetLogger("A").Info("hello from {a} {b} {a}", 1, 2, 3);
Результат:
2020-05 -26 09: 49: 53.1436 | ИНФОРМАЦИЯ | A | привет от 1 2 3
Были применены замены.
Итак, я ожидаю увидеть замены в первом случае, но здесь нет. Это правильное поведение в NLog относительно синтаксиса шаблонов сообщений ?
Я проверил поведение в первом случае для Serilog. Делает замены.