public void ProcessEvent(NativeJsonLogsBaseEvent baseEvent, LogLine logLine) { if (baseEvent.EventType == "startup-info") { var @event = new VizqlDesktopSession(baseEvent); _sessionsWriter.AddLine(@event); _sessionTracker.RegisterSession(logLine.LogFileInfo.FilePath, @event.SessionId); return; } var sessionId = _sessionTracker.GetSessionId(logLine.LogFileInfo.FilePath); if (baseEvent.Severity == "error" || baseEvent.Severity == "fatal") { var @event = new VizqlDesktopErrorEvent(baseEvent, logLine, sessionId); _errorsWriter.AddLine(@event); return; } if (sessionId == null) // Only errors allowed to be captured without session { return; } if (baseEvent.EventType == "end-query") { var @event = new VizqlEndQueryEvent(baseEvent, logLine, sessionId, _maxQueryLength); _endQueryEventsWriter.AddLine(@event); // No return so we can output this event as a performance event as well. Workbook currently expects to see end-query in both data sources } var performanceEvent = TryParsePerformanceEvent(baseEvent, logLine, sessionId); if (performanceEvent != null) { _performanceEventsWriter.AddLine(performanceEvent); return; } ; }