コード例 #1
0
        private void BuildConfiguration()
        {
            var filterDataStringBuilder = new StringBuilder();

            filterDataStringBuilder.Append("FilterSpecs=\"");
            foreach (var filter in _loggerOptions.Rules)
            {
                if ((string.IsNullOrEmpty(filter.ProviderName) || filter.ProviderName.Equals(typeof(ConsoleLoggerProvider).FullName)) && filter.LogLevel.HasValue)
                {
                    var categoryName = string.IsNullOrEmpty(filter.CategoryName) ? "Default" : filter.CategoryName;
                    filterDataStringBuilder.Append($"{categoryName}:{filter.LogLevel};");
                }
            }
            filterDataStringBuilder.Append("\"");
            var filterData = filterDataStringBuilder.ToString();

            _providerList = new List <Provider>()
            {
                new Provider(name: _MicrosoftExtensionsLoggingProviderName,
                             keywords: (ulong)LoggingEventSource.Keywords.FormattedMessage,
                             eventLevel: EventLevel.LogAlways,
                             filterData: filterData)
            };
            _configuration = new SessionConfigurationV2(
                circularBufferSizeMB: 100,
                format: EventPipeSerializationFormat.NetTrace,
                requestRundown: false,
                providers: _providerList);
        }
コード例 #2
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));
        }
コード例 #3
0
        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);
        }