Ejemplo n.º 1
0
        public PerfMarginPanel()
        {
            Logger.SetLogger(
                AggregateLogger.AddOrReplace(
                    s_logger,
                    Logger.GetLogger(),
                    l => l is PerfEventActivityLogger
                    )
                );

            // grid
            _mainGrid = new Grid();
            _mainGrid.ColumnDefinitions.Add(new ColumnDefinition());
            _mainGrid.RowDefinitions.Add(new RowDefinition()
            {
                Height = GridLength.Auto
            });
            _mainGrid.RowDefinitions.Add(new RowDefinition()
            {
                Height = GridLength.Auto
            });

            // set diagnostic list
            _mainListView = CreateContent(
                new ActivityLevel[] { s_model.RootNode }.Concat(s_model.RootNode.Children),
                useWrapPanel: true
                );
            _mainListView.SelectionChanged += OnPerfItemsListSelectionChanged;
            Grid.SetRow(_mainListView, 0);

            _mainGrid.Children.Add(_mainListView);

            this.Content = _mainGrid;

            _timer = new DispatcherTimer(
                TimeSpan.FromMilliseconds(500),
                DispatcherPriority.Background,
                UpdateUI,
                this.Dispatcher
                );
            StartTimer();

            s_model.RootNode.IsActiveChanged += (s, e) =>
            {
                if (_stopTimer)
                {
                    StartTimer();
                }
            };
        }
Ejemplo n.º 2
0
        protected override void OnApply(PageApplyEventArgs e)
        {
            base.OnApply(e);

            if (_optionService.GetOption(LoggerOptions.EtwLoggerKey))
            {
                Logger.SetLogger(AggregateLogger.AddOrReplace(new EtwLogger(_optionService), Logger.GetLogger(), l => l is EtwLogger));
            }

            if (_optionService.GetOption(LoggerOptions.TraceLoggerKey))
            {
                Logger.SetLogger(AggregateLogger.AddOrReplace(new TraceLogger(_optionService), Logger.GetLogger(), l => l is TraceLogger));
            }
        }
Ejemplo n.º 3
0
 private static void SetRoslynLogger <T>(List <string> loggerTypes, Func <T> creator)
     where T : ILogger
 {
     if (loggerTypes.Contains(typeof(T).Name))
     {
         Logger.SetLogger(
             AggregateLogger.AddOrReplace(creator(), Logger.GetLogger(), l => l is T)
             );
     }
     else
     {
         Logger.SetLogger(AggregateLogger.Remove(Logger.GetLogger(), l => l is T));
     }
 }