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;
            }
            ;
        }