Пример #1
0
        private void InitializeEventTrace(ConfigurationSection configSection, bool firstTimeInitialization)
        {
            SettingsConfigReader configReader = new SettingsConfigReader(configSection);
            string level            = configReader.ReadTraceLevelKey();
            string keywords         = configReader.ReadKeywordsKey();
            string includeEventList = configReader.ReadIncludeEventKey();
            string excludeEventList = configReader.ReadExcludeEventKey();

            TraceSinkFilter traceSinkFilter = new TraceSinkFilter(DefaultTracingLevel, DefaultKeyword);

            traceSinkFilter.Level    = string.IsNullOrEmpty(level) ? DefaultTracingLevel : this.ConvertLevel(int.Parse(level));
            traceSinkFilter.Keywords = string.IsNullOrEmpty(keywords) ? DefaultKeyword : (EventKeywords)Convert.ToUInt64(keywords, 16);

            if (!string.IsNullOrEmpty(includeEventList))
            {
                this.ProcessEventList(traceSinkFilter, includeEventList, TraceSinkFilter.FilterType.Include);
            }

            if (!string.IsNullOrEmpty(excludeEventList))
            {
                this.ProcessEventList(traceSinkFilter, excludeEventList, TraceSinkFilter.FilterType.Exclude);
            }

            if (firstTimeInitialization)
            {
                // Assign sinkFilter for first time initialization only if any OnConfigurationPackageModified callbacks haven't modified it already
                Interlocked.CompareExchange(ref this.sinkFilter, traceSinkFilter, null);
            }
            else
            {
                this.sinkFilter = traceSinkFilter;
            }

            this.OnFilterUpdate();
        }
Пример #2
0
        private void ProcessEventList(TraceSinkFilter traceSinkFilter, string eventList, TraceSinkFilter.FilterType filterType)
        {
            var events = eventList.Split(this.filterValueSeparatorArray, System.StringSplitOptions.RemoveEmptyEntries);

            foreach (var e in events)
            {
                traceSinkFilter.AddFilter(e, filterType);
            }
        }