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 неправильно интерпретировать это как несоответствие.

Другие вопросы по тегам