2 instantiations of LogEntry
Aspire.Dashboard (2)
src\Shared\ConsoleLogs\LogEntry.cs (2)
77return new LogEntry 99return new LogEntry
73 references to LogEntry
Aspire.Dashboard (36)
Components\Controls\LogViewer.razor.cs (9)
27private IList<LogEntry>? _visibleEntriesCache; 67private Virtualize<LogEntry>? VirtualizeRef 77VirtualizeHelper<LogEntry>.TrySetMaxItemCount(field, 10_000); 142private ValueTask<ItemsProviderResult<LogEntry>> GetItems(ItemsProviderRequest r) 145return ValueTask.FromResult(new ItemsProviderResult<LogEntry>(entries.Skip(r.StartIndex).Take(r.Count), entries.Count)); 148private IList<LogEntry> GetVisibleEntries() 158return _visibleEntriesCache = Array.Empty<LogEntry>(); 170private bool MatchesFilter(LogEntry entry, string filterText) 180private string GetSearchableText(LogEntry entry)
Components\Pages\ConsoleLogs.razor.cs (5)
137private record struct LogEntryToWrite(string ResourceName, LogEntry LogEntry, int? LineNumber); 1103_logEntryChannel.Writer.TryWrite(new LogEntryToWrite(subscription.Resource.Name, LogEntry.CreatePause(GetResourceName(subscription.Resource), priorPause.Start, priorPause.End), LineNumber: null)); 1121var logEntry = logParser.CreateLogEntry(content, isErrorOutput, resourcePrefix); 1276_logEntryChannel.Writer.TryWrite(new LogEntryToWrite(subscription.Resource.Name, LogEntry.CreatePause(GetResourceName(subscription.Resource), timestamp), LineNumber: null)); 1285var lastResourceEntry = entries.LastOrDefault(e => e.ResourcePrefix == resourcePrefix);
Model\ConsoleLogsFetcher.cs (5)
32private async Task<List<LogEntry>> FetchLogEntriesAsync(string resourceName, DateTime? filterDate, CancellationToken cancellationToken) 34var logEntries = new List<LogEntry>(); 44var logEntry = logParser.CreateLogEntry(logLine.Content, logLine.IsErrorMessage, resourcePrefix: null); 62public async Task<Dictionary<string, List<LogEntry>>> FetchLogEntriesAsync(HashSet<string> resourceNames, CancellationToken cancellationToken) 70var result = new Dictionary<string, List<LogEntry>>(StringComparer.OrdinalIgnoreCase);
src\Shared\ConsoleLogs\LogEntries.cs (8)
19private readonly CircularBuffer<LogEntry> _logEntries = new(maximumEntryCount); 27public IList<LogEntry> GetEntries() => _logEntries; 45foreach (var pauseEntry in pauseEntries) 60public bool ProcessPauseFilters(LogEntry logEntry) 83public void InsertSorted(LogEntry logLine) 99var entry = _logEntries[i]; 114private void InsertSortedCore(LogEntry logEntry) 126var current = _logEntries[rowIndex];
src\Shared\ConsoleLogs\LogEntry.cs (4)
75public static LogEntry CreatePause(string resourcePrefix, DateTime startTimestamp, DateTime? endTimestamp = null) 92public static LogEntry Create(DateTime? timestamp, string logMessage, bool isErrorMessage) 97public static LogEntry Create(DateTime? timestamp, string logMessage, string rawLogContent, bool isErrorMessage, string? resourcePrefix) 123public static LogEntryKey Create(LogEntry logEntry)
src\Shared\ConsoleLogs\LogEntrySerializer.cs (2)
16public static void WriteLogEntriesToStream(IList<LogEntry> entries, Stream stream) 20foreach (var entry in entries)
src\Shared\ConsoleLogs\LogParser.cs (3)
20public LogEntry CreateLogEntry(string rawText, bool isErrorOutput, string? resourcePrefix) 70var logEntry = LogEntry.Create(timestamp, content, rawText, isErrorOutput, resourcePrefix);
Aspire.Dashboard.Components.Tests (17)
Controls\LogViewerTests.cs (10)
39logEntries.InsertSorted(LogEntry.Create( 169var pauseEntry = LogEntry.CreatePause("resource", pauseStart, pauseEnd); 173logEntries.InsertSorted(LogEntry.Create( 206logEntries.InsertSorted(LogEntry.Create( 300logEntries.InsertSorted(LogEntry.Create( 323logEntries.InsertSorted(LogEntry.Create( 355logEntries.InsertSorted(LogEntry.Create( 382logEntries.InsertSorted(LogEntry.Create( 418logEntries.InsertSorted(LogEntry.Create(
Pages\ConsoleLogsTests.cs (7)
647var earliestEntry = instance._logEntries.GetEntries()[0]; 753var earliestEntry = instance._logEntries.GetEntries()[0]; 795var logEntry = Assert.Single(cut.Instance._logEntries.GetEntries()); 1044var pauseLog = Assert.Single(cut.Instance._logEntries.GetEntries()); 1070var pauseEntry = Assert.Single(cut.Instance._logEntries.GetEntries()); 1093var newLog = Assert.Single(logViewer.Instance.LogEntries!.GetEntries(), e => e.RawContent == resumeContent); 1103foreach (var logEntry in logEntries.GetEntries())
Aspire.Dashboard.Tests (20)
ConsoleLogsTests\LogEntriesTests.cs (20)
21var logEntry = logParser.CreateLogEntry(content, isError, resourcePrefix: null); 35var logEntry1 = logParser.CreateLogEntry("Test", isErrorOutput: false, resourcePrefix: null); 39var logEntry2 = logParser.CreateLogEntry("2024-08-19T06:12:01.000Z Test", isErrorOutput: false, resourcePrefix: null); 46var logEntry3 = logParser.CreateLogEntry("2024-08-19T06:12:02.000Z Test", isErrorOutput: false, resourcePrefix: null); 63logEntries.InsertSorted(LogEntry.CreatePause( 69var pauseEntry = LogEntry.CreatePause("resource-name", new DateTime(2024, 1, 1, 0, 0, 0, DateTimeKind.Utc)); 79var entry = Assert.Single(logEntries.GetEntries()); 94var entry = Assert.Single(logEntries.GetEntries()); 243logEntries.InsertSorted(LogEntry.Create(timestamp.AddSeconds(1), "1", isErrorMessage: false)); 244logEntries.InsertSorted(LogEntry.Create(timestamp.AddSeconds(3), "3", isErrorMessage: false)); 245logEntries.InsertSorted(LogEntry.Create(timestamp.AddSeconds(2), "2", isErrorMessage: false)); 264logEntries.InsertSorted(LogEntry.Create(timestamp.AddSeconds(1), "1", isErrorMessage: false)); 265logEntries.InsertSorted(LogEntry.Create(timestamp.AddSeconds(2), "2", isErrorMessage: false)); 266logEntries.InsertSorted(LogEntry.Create(timestamp.AddSeconds(3), "3", isErrorMessage: false)); 284logEntries.InsertSorted(LogEntry.Create(timestamp.AddSeconds(1), "1", isErrorMessage: false)); 285logEntries.InsertSorted(LogEntry.Create(timestamp.AddSeconds(3), "3", isErrorMessage: false)); 286logEntries.InsertSorted(LogEntry.Create(timestamp.AddSeconds(2), "2", isErrorMessage: false)); 302var entry = parser.CreateLogEntry("\x1b[36mhttps://www.example.com\u001b[0m", isErrorOutput: false, resourcePrefix: null); 317var entry = parser.CreateLogEntry("\u001b[40m\u001b[32minfo\u001b[39m\u001b[22m\u001b[49m: LoggerName", isErrorOutput: false, resourcePrefix: null);