public void TestOpenBeforeCreate() { ILogSource logSource = null; try { string fileName = PathEx.GetTempFileName(); if (File.Exists(fileName)) { File.Delete(fileName); } new Action(() => logSource = Create(fileName)).Should().NotThrow(); logSource.Property(x => x.GetProperty(Properties.PercentageProcessed)).ShouldAfter(TimeSpan.FromSeconds(5)).Be(Percentage.HundredPercent); logSource.Property(x => x.GetProperty(Properties.EmptyReason)).ShouldAfter(TimeSpan.FromSeconds(5)).NotBeNull("Because the specified file doesn't exist"); File.WriteAllText(fileName, "Hello World!"); logSource.Property(x => x.GetProperty(Properties.EmptyReason)).ShouldAfter(TimeSpan.FromSeconds(5)).Be(null, "Because the file has been created now"); logSource.Property(x => x.GetProperty(Properties.LogEntryCount)).ShouldAfter(TimeSpan.FromSeconds(5)).Be(1, "Because one line was written to the file"); var entry = logSource.GetEntry(0); entry.Index.Should().Be(0); entry.RawContent.Should().Be("Hello World!"); } finally { logSource?.Dispose(); } }
/// <inheritdoc /> public void Dispose() { try { _logSource.Dispose(); } catch (Exception e) { BlameExceptionOnPlugin(e); } }
/// <inheritdoc /> public void Dispose() { ILogSource logSource = _source; logSource?.Dispose(); _taskScheduler.StopPeriodic(_task); // https://github.com/Kittyfisto/Tailviewer/issues/282 _listeners.Clear(); _properties.Clear(); _source = null; _isDisposed = true; }
public static ILogSource FindLiveLogSourceOrCreateNew( this ILogSourcesManager logSources, ILogProviderFactory factory, IConnectionParams cp) { ILogSource src = logSources.Find(cp); if (src != null && src.Provider.Stats.State == LogProviderState.LoadError) { src.Dispose(); src = null; } if (src == null) { src = logSources.Create(factory, cp); } return(src); }
ILogSource ILogSourcesManager.Create(ILogProviderFactory providerFactory, IConnectionParams cp) { ILogSource src = ((ILogSourcesManager)this).Find(cp); if (src != null && src.Provider.Stats.State == LogProviderState.LoadError) { src.Dispose(); src = null; } if (src == null) { src = logSourceFactory.CreateLogSource( this, ++lastLogSourceId, providerFactory, cp ); } recentlyUsedEntities.RegisterRecentLogEntry(src.Provider, src.Annotation); return(src); }
public void TestExists() { ILogSource logSource = null; try { new Action(() => logSource = Create(File2Lines)).Should().NotThrow(); logSource.Property(x => x.GetProperty(Properties.PercentageProcessed)).ShouldAfter(TimeSpan.FromSeconds(5)).Be(Percentage.HundredPercent); logSource.Property(x => x.GetProperty(Properties.EmptyReason)).ShouldAfter(TimeSpan.FromSeconds(5)).Be(null); logSource.GetProperty(Properties.EmptyReason).Should().Be(null, "Because the specified file does exist"); } finally { if (logSource != null) { logSource.Dispose(); } } }
public void TestDoesNotExist() { ILogSource logSource = null; try { new Action(() => logSource = Create("dadwdawdw")).Should().NotThrow(); logSource.Property(x => x.GetProperty(Properties.PercentageProcessed)).ShouldAfter(TimeSpan.FromSeconds(5)).Be(Percentage.HundredPercent); logSource.Property(x => x.GetProperty(Properties.EmptyReason)).ShouldAfter(TimeSpan.FromSeconds(5)).NotBeNull(); logSource.GetProperty(Properties.EmptyReason).Should().BeOfType <SourceDoesNotExist>("Because the specified file doesn't exist"); } finally { if (logSource != null) { logSource.Dispose(); } } }
private void CreateFilteredLogFile() { _filteredLogSource?.Dispose(); LevelFlags levelFilter = LevelFilter; ILogLineFilter logLineFilter = CreateLogLineFilter(); ILogEntryFilter logEntryFilter = Filter.Create(levelFilter, _quickFilterChain); if (Filter.IsFilter(logEntryFilter) || Filter.IsFilter(logLineFilter)) { _logEntryFilter = logEntryFilter; _filteredLogSource = UnfilteredLogSource.AsFiltered(_taskScheduler, logLineFilter, logEntryFilter, _maximumWaitTime); _logSource.InnerLogSource = _filteredLogSource; } else { _logEntryFilter = null; _filteredLogSource = null; _logSource.InnerLogSource = UnfilteredLogSource; } }
void IViewEvents.OnLoadedMessagesWarningIconClicked() { if (loadedMessageWarningStatus == LoadedMessageWarningStatus.Unfixable) { alerts.ShowPopup("Problem with the log", loadedMessagesWarningMessage, AlertFlags.Ok | AlertFlags.WarningIcon); } else if (loadedMessageWarningStatus == LoadedMessageWarningStatus.FixableByReordering) { if (alerts.ShowPopup("Problem with the log", loadedMessagesWarningMessage, AlertFlags.YesNoCancel | AlertFlags.QuestionIcon) == AlertFlags.Yes) { var cp = preprocessings.AppendReorderingStep(source.Provider.ConnectionParams, source.Provider.Factory); if (cp != null) { currentWindow.Close(); source.Dispose(); preprocessings.Preprocess( new MRU.RecentLogEntry(source.Provider.Factory, cp, "", null)); } } } }
/// <inheritdoc /> public void Dispose() { _source?.Dispose(); _source = null; }
protected override void DisposeAdditional() { _originalLogSource?.Dispose(); _unfilteredLogSource?.Dispose(); _multiLineLogSource?.Dispose(); }