public RawLoggerViewModel(ILogInterceptor logIntercetptor) { _interceptor = logIntercetptor; _Logs = new ObservableCollection<LogMessageViewModel>(); Commands = new ObservableCollection<AggregateLogMessageViewModel>(); Handlers = new ObservableCollection<AggregateLogMessageViewModel>(); AggregatedLogs = new ObservableCollection<OpTypeLoggerViewModel>(); CvsLogs = new CollectionViewSource(); CvsLogs.Source = _Logs; CvsLogs.Filter += CvsLogsFilter; Logs = CvsLogs.View; _interceptor.LogIntercepted += LogIntercepted; PropertyChangedObserver.Monitor(this) .HandleChangesOf(vm => vm.LevelFilter, EvaluateFilter) .HandleChangesOf(vm => vm.MainFilter, EvaluateFilter); SpecificLoggers = new ObservableCollection<SpecificLoggerViewModel>(); var specificLoggersOption = Properties.Settings.Default.SpecificLoggerList; if (!String.IsNullOrWhiteSpace(specificLoggersOption)) { var specifiLoggerList = specificLoggersOption.Split(',', ';'); foreach (var sl in specifiLoggerList) { SpecificLoggers.Add(new SpecificLoggerViewModel(sl, _Logs)); } } SpecificLoggers.CollectionChanged += SpecificLoggersCollectionChanged; Root = new LoggerViewModel("root"); }
public RawLoggerViewModel(ILogInterceptor logIntercetptor) { _interceptor = logIntercetptor; _Logs = new ObservableCollection <LogMessageViewModel>(); Commands = new ObservableCollection <AggregateLogMessageViewModel>(); Handlers = new ObservableCollection <AggregateLogMessageViewModel>(); AggregatedLogs = new ObservableCollection <OpTypeLoggerViewModel>(); CvsLogs = new CollectionViewSource(); CvsLogs.Source = _Logs; CvsLogs.Filter += CvsLogsFilter; Logs = CvsLogs.View; _interceptor.LogIntercepted += LogIntercepted; PropertyChangedObserver.Monitor(this) .HandleChangesOf(vm => vm.LevelFilter, EvaluateFilter) .HandleChangesOf(vm => vm.MainFilter, EvaluateFilter); SpecificLoggers = new ObservableCollection <SpecificLoggerViewModel>(); var specificLoggersOption = Properties.Settings.Default.SpecificLoggerList; if (!String.IsNullOrWhiteSpace(specificLoggersOption)) { var specifiLoggerList = specificLoggersOption.Split(',', ';'); foreach (var sl in specifiLoggerList) { SpecificLoggers.Add(new SpecificLoggerViewModel(sl, _Logs)); } } SpecificLoggers.CollectionChanged += SpecificLoggersCollectionChanged; Root = new LoggerViewModel("root"); }
public void ParseLogger(String[] loggerParts, Int32 level) { if (level == LoggerLevel) { LoggerCount++; return; } //do I have a child logger for this name? String name = loggerParts.Take(level + 1).Aggregate((s1, s2) => s1 + "." + s2); var cvm = Childs.SingleOrDefault(vm => vm.LoggerPrefix.Equals(name)); if (cvm == null) { cvm = new LoggerViewModel(name); Childs.Add(cvm); } cvm.ParseLogger(loggerParts, level + 1); }