/// <summary> /// Must be called by suclasses when the <see cref="UnfilteredLogFile"/> property changes /// (i.e. returns a different object). /// </summary> protected void OnUnfilteredLogFileChanged() { _previousUnfilteredLogFile?.RemoveListener(_counter); UnfilteredLogFile.AddListener(_counter, TimeSpan.Zero, 1000); _previousUnfilteredLogFile = UnfilteredLogFile; CreateFilteredLogFile(); }
private void CreateFilteredLogFile() { _filteredLogFile?.Dispose(); LevelFlags levelFilter = LevelFilter; ILogLineFilter logLineFilter = HideEmptyLines ? (ILogLineFilter) new EmptyLogLineFilter() : new NoFilter(); ILogEntryFilter logEntryFilter = Filter.Create(levelFilter, _quickFilterChain); if (logEntryFilter != null) { _filteredLogFile = UnfilteredLogFile.AsFiltered(_taskScheduler, logLineFilter, logEntryFilter, _maximumWaitTime); _logFile.InnerLogFile = _filteredLogFile; } else { _filteredLogFile = null; _logFile.InnerLogFile = UnfilteredLogFile; } }
private void CreateFilteredLogFile() { _filteredLogFile?.Dispose(); LevelFlags levelFilter = LevelFilter; ILogLineFilter logLineFilter = CreateLogLineFilter(); ILogEntryFilter logEntryFilter = Filter.Create(levelFilter, _quickFilterChain); if (Filter.IsFilter(logEntryFilter) || Filter.IsFilter(logLineFilter)) { _filteredLogFile = UnfilteredLogFile.AsFiltered(_taskScheduler, logLineFilter, logEntryFilter, _maximumWaitTime); _logFile.InnerLogFile = _filteredLogFile; } else { _filteredLogFile = null; _logFile.InnerLogFile = UnfilteredLogFile; } }