У меня проблема с созданием целевого фильтра NLog в C #. Я пытаюсь создать фильтр для входа в две разные цели. У меня это работает с условием на основе содержимого сообщения, содержащего соответствующую строку. Проблема в том, что я не могу заставить условие работать с именем машины или контекстом события.
Это будет работать, как и ожидалось, с использованием самого сообщения:
var newRule = new LoggingRule("*", logLevel, someWrapper);
newRule.DefaultFilterResult = FilterResult.Ignore;
newRule.Filters.Add(new ConditionBasedFilter()
{
Condition = "contains(message, 'string')",
Action = FilterResult.Log
});
config.LoggingRules.Add(newRule);
Это не работает:
Condition = "contains(machinename, 'string')"
Condition = "equals(machinename, 'string')"
Condition = "machinename == 'string')"
Condition = "contains(event-context:item=SomeItem, 'string')"
Condition = "equals(event-context:item=SomeItem, 'string')"
Condition = "event-context:item=SomeItem == 'string')"
Ошибка, которую я увижу для вышеупомянутого, будет:
"Неожиданный токен: ==" ИЛИ "Неожиданный токен:,"
Я не уверен, что у меня неправильный формат, может быть? Я пробовал несколько разных вариантов, но я просто не могу заставить условный фильтр работать с именем машины или, более конкретно, с контекстом события.
Спасибо за ваше время и помощь!