语义日志记录分析器WriteEvent参数和事件参数的异常数不同
本文关键字:参数 异常 事件 日志 记录 分析器 WriteEvent 语义 | 更新日期: 2023-09-27 18:27:48
此片段使语义日志分析器抛出"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参数(例如事件id和命令id)和一个事件参数(例如命令id)。如果我尝试使用具有多个参数/自变量的任何组合,则会引发上述异常。异常是在具有多个参数/自变量的任何事件上引发的,而不仅仅是提供的示例。
我以这些样品为起点https://github.com/mspnp/semantic-logging/tree/master/quickstarts.
我遇到了同样的错误,无法解决。最终,我得到了EventSourceAnalyzer代码,进行了编译和调试。
我发现我的WriteEvent
实际上在写以下内容:
EventSourceException在处理事件"MethodName"时:操作系统没有可用的可用缓冲区(例如事件速率太快)
在EventSourceAnalyzer类中有以下行:if (eventParameters.Length != this.EventData.Payload.Count)
throw mismatch exception
现在,因为我的WriteEvent
实际上传递了3个参数,WriteEvent
实际上抛出了一个错误,这一事实导致EventSourceAnalyzer
错误地将其解释为不匹配。