Exemple #1
0
        private void ExtendedEventsReader_OnErrorEvent(ExtendedEventsReader sender, OnErrorEventArgs args)
        {
            OnErrorExportDataHandler handlerOnErrorExportData = _onErrorExportData;

            handlerOnErrorExportData?.Invoke(new OnErrorExportDataEventArgs()
            {
                Exception = args.Exception
            });
        }
Exemple #2
0
 public void Dispose()
 {
     if (_reader != null)
     {
         _reader.Reset();
         _reader.Dispose();
         _reader = null;
     }
 }
Exemple #3
0
        private void ExtendedEventsReader_BeforeReadFile(ExtendedEventsReader sender, BeforeReadFileEventArgs args)
        {
            var taskLogFileLoaded = _target.LogFileLoaded(args.FileName);

            taskLogFileLoaded.Wait();
            if (taskLogFileLoaded.Result)
            {
                args.Cancel = true;
            }
        }
Exemple #4
0
        private void ExtendedEventsReader_AfterReadFile(ExtendedEventsReader sender, AfterReadFileEventArgs args)
        {
            if (_dataToSend.Count > 0)
            {
                SendDataCurrentPortion(sender).Wait();
            }

            ExtendedEventsPosition position = sender.GetCurrentPosition();

            _target.SaveLogPosition(position);
        }
Exemple #5
0
        private void ExtendedEventsReader_BeforeReadFile(ExtendedEventsReader sender, BeforeReadFileEventArgs args)
        {
            FileInfo logFileInfo        = new FileInfo(args.FileName);
            var      logFileChangedTask = _target.LogFileChanged(logFileInfo);

            logFileChangedTask.Wait();
            if (!logFileChangedTask.Result)
            {
                args.Cancel = true;
            }
        }
Exemple #6
0
 public void SetXEventsPath(string eventPath)
 {
     _eventPath = eventPath;
     if (!string.IsNullOrEmpty(_eventPath))
     {
         _reader = new ExtendedEventsReader(eventPath,
                                            ExtendedEventsReader_OnReadEvent,
                                            null,
                                            ExtendedEventsReader_BeforeReadFile,
                                            ExtendedEventsReader_AfterReadFile,
                                            ExtendedEventsReader_OnErrorEvent);
     }
 }
Exemple #7
0
        private void ExtendedEventsReader_AfterReadFile(ExtendedEventsReader sender, AfterReadFileEventArgs args)
        {
            FileInfo _lastEventLogDataFileInfo = new FileInfo(args.FileName);

            if (_dataToSend.Count > 0)
            {
                SendDataCurrentPortion(sender).Wait();
            }

            ExtendedEventsPosition position = sender.GetCurrentPosition();

            _target.SaveLogPosition(_lastEventLogDataFileInfo, position, true);
        }
Exemple #8
0
        private async Task SendDataCurrentPortion(ExtendedEventsReader reader)
        {
            RiseBeforeExportData(out var cancel);
            if (!cancel)
            {
                await _target.Save(_dataToSend);

                RiseAfterExportData(reader.GetCurrentPosition());
                if (reader.CurrentFile != null)
                {
                    await _target.SaveLogPosition(reader.GetCurrentPosition());
                }
            }
            _dataToSend.Clear();
        }
Exemple #9
0
        private void ExtendedEventsReader_OnReadEvent(ExtendedEventsReader sender, OnReadEventArgs args)
        {
            if (sender.CurrentRow == null)
            {
                return;
            }

            var fileInfo  = new FileInfo(sender.CurrentFile);
            var eventData = new XEventData(fileInfo.Name, sender.CurrentFileEventNumber, args.EventData);

            _dataToSend.Add(eventData);

            if (_dataToSend.Count >= _portionSize)
            {
                SendDataCurrentPortion(sender).Wait();
            }
        }