Seception Logging Analyzer отличается числом исключений аргументов WriteEvent и параметров событий
Этот фрагмент заставляет Semantic Log Analyzer выдавать "Количество аргументов WriteEvent и параметров события в имени события" HandlingCommand "различно".
[NonEvent]
public void HandlingCommand(Command command)
{
if (this.IsEnabled())
{
this.HandlingCommand(command.Id.ToString(), command.Agent.AgentId.ToString());
}
}
[Event(1101,
Level = EventLevel.Informational,
Keywords = Keywords.Agent)]
private void HandlingCommand(string commandId, string agentId)
{
this.WriteEvent(1101, commandId, agentId);
}
Единственный способ устранить ошибку анализатора - это иметь два параметра WriteEvent (например, идентификатор события и идентификатор команды) и один аргумент события (например, идентификатор команды). Если я пытаюсь использовать любую комбинацию с более чем одним параметром / аргументом, вышеупомянутое исключение выдается. Исключение выдается для любого события с более чем одним параметром / аргументом, а не только с предоставленным примером.
Я использовал эти образцы в качестве отправной точки https://github.com/mspnp/semantic-logging/tree/master/quickstarts.
1 ответ
Я столкнулся с той же ошибкой и не мог понять это. В конце концов я получил код EventSourceAnalyzer, скомпилированный и отлаженный.
Я обнаружил, что мой WriteEvent
на самом деле писал следующее:
EventSourceException при обработке события "MethodName": в операционной системе нет свободных буферов (например, слишком высокая частота событий).
в классе EventSourceAnalyzer есть эта строка:if (eventParameters.Length != this.EventData.Payload.Count)
throw mismatch exception
Теперь, потому что мой WriteEvent
фактически проходил в 3-х параметрах, тот факт, что WriteEvent
был в основном бросая ошибку вызвало EventSourceAnalyzer
неправильно интерпретировать это как несоответствие.