Exemplo n.º 1
0
        // Use EventPipe CollectTracing2 command to start monitoring. This may throw.
        private EventPipeEventSource RequestTracingV2(string providerString)
        {
            var configuration = new SessionConfigurationV2(
                circularBufferSizeMB: 1000,
                format: EventPipeSerializationFormat.NetTrace,
                requestRundown: false,
                providers: Trace.Extensions.ToProviders(providerString));
            var binaryReader = EventPipeClient.CollectTracing2(_processId, configuration, out _sessionId);

            return(new EventPipeEventSource(binaryReader));
        }
        public EventPipeSession(int pid, List <Provider> providers, bool requestRundown = true)
        {
            _pid       = pid;
            _providers = providers;
            var config = new SessionConfigurationV2(
                circularBufferSizeMB: 1024,
                format: EventPipeSerializationFormat.NetTrace,
                requestRundown: requestRundown,
                providers
                );

            _eventPipeStream = EventPipeClient.CollectTracing2(pid, config, out _sessionId);
            _source          = new EventPipeEventSource(_eventPipeStream);
        }
Exemplo n.º 3
0
        protected override async Task ExecuteAsync(CancellationToken cancellationToken)
        {
            cancellationToken.Register(() =>
            {
                _optionsReloadToken?.Dispose();
                EventPipeClient.StopTracing(_logViewerOptions.ProcessId, _sessionId);
            });

            while (!cancellationToken.IsCancellationRequested)
            {
                BuildConfiguration();
                _eventStream = EventPipeClient.CollectTracing2(_logViewerOptions.ProcessId, _configuration, out _sessionId);
                await Task.Run(() => ProcessEvents());
            }

            if (!cancellationToken.IsCancellationRequested)
            {
                _lifetime.StopApplication();
            }
        }