2 instantiations of LogEntry
Aspire.Dashboard (2)
src\Shared\ConsoleLogs\LogEntry.cs (2)
77
return new
LogEntry
99
return new
LogEntry
84 references to LogEntry
Aspire.Dashboard (38)
Components\Controls\LogViewer.razor.cs (11)
23
private static readonly IEqualityComparer<
LogEntry
> s_logEntryComparer = EqualityComparer<
LogEntry
>.Create(
36
private IList<
LogEntry
>? _visibleEntriesCache;
76
private Virtualize<
LogEntry
>? VirtualizeRef { get; set; }
137
private ValueTask<ItemsProviderResult<
LogEntry
>> GetItems(ItemsProviderRequest r)
143
return ValueTask.FromResult(new ItemsProviderResult<
LogEntry
>(initialResult.Items, initialResult.TotalItemCount));
146
return ValueTask.FromResult(new ItemsProviderResult<
LogEntry
>(entries.Skip(r.StartIndex).Take(r.Count), entries.Count));
149
private IList<
LogEntry
> GetVisibleEntries()
159
return _visibleEntriesCache = Array.Empty<
LogEntry
>();
171
private bool MatchesFilter(
LogEntry
entry, string filterText)
181
private string GetSearchableText(
LogEntry
entry)
Components\Pages\ConsoleLogs.razor.cs (5)
143
private record struct LogEntryToWrite(string ResourceName,
LogEntry
LogEntry, int? LineNumber);
1040
_logEntryChannel.Writer.TryWrite(new LogEntryToWrite(subscription.Resource.Name,
LogEntry
.CreatePause(GetResourceName(subscription.Resource), priorPause.Start, priorPause.End), LineNumber: null));
1058
var
logEntry = logParser.CreateLogEntry(content, isErrorOutput, resourcePrefix);
1213
_logEntryChannel.Writer.TryWrite(new LogEntryToWrite(subscription.Resource.Name,
LogEntry
.CreatePause(GetResourceName(subscription.Resource), timestamp), LineNumber: null));
1222
var
lastResourceEntry = entries.LastOrDefault(e => e.ResourcePrefix == resourcePrefix);
Model\ConsoleLogsFetcher.cs (5)
32
private async Task<List<
LogEntry
>> FetchLogEntriesAsync(string resourceName, DateTime? filterDate, CancellationToken cancellationToken)
34
var logEntries = new List<
LogEntry
>();
44
var
logEntry = logParser.CreateLogEntry(logLine.Content, logLine.IsErrorMessage, resourcePrefix: null);
62
public async Task<Dictionary<string, List<
LogEntry
>>> FetchLogEntriesAsync(HashSet<string> resourceNames, CancellationToken cancellationToken)
70
var result = new Dictionary<string, List<
LogEntry
>>(StringComparer.OrdinalIgnoreCase);
src\Shared\ConsoleLogs\LogEntries.cs (8)
19
private readonly CircularBuffer<
LogEntry
> _logEntries = new(maximumEntryCount);
27
public IList<
LogEntry
> GetEntries() => _logEntries;
45
foreach (
var
pauseEntry in pauseEntries)
60
public bool ProcessPauseFilters(
LogEntry
logEntry)
83
public void InsertSorted(
LogEntry
logLine)
99
var
entry = _logEntries[i];
114
private void InsertSortedCore(
LogEntry
logEntry)
126
var
current = _logEntries[rowIndex];
src\Shared\ConsoleLogs\LogEntry.cs (4)
75
public static
LogEntry
CreatePause(string resourcePrefix, DateTime startTimestamp, DateTime? endTimestamp = null)
92
public static
LogEntry
Create(DateTime? timestamp, string logMessage, bool isErrorMessage)
97
public static
LogEntry
Create(DateTime? timestamp, string logMessage, string rawLogContent, bool isErrorMessage, string? resourcePrefix)
123
public static LogEntryKey Create(
LogEntry
logEntry)
src\Shared\ConsoleLogs\LogEntrySerializer.cs (2)
16
public static void WriteLogEntriesToStream(IList<
LogEntry
> entries, Stream stream)
20
foreach (
var
entry in entries)
src\Shared\ConsoleLogs\LogParser.cs (3)
20
public
LogEntry
CreateLogEntry(string rawText, bool isErrorOutput, string? resourcePrefix)
70
var
logEntry =
LogEntry
.Create(timestamp, content, rawText, isErrorOutput, resourcePrefix);
Aspire.Dashboard.Components.Tests (26)
Controls\LogViewerTests.cs (19)
24
var virtualize = cut.FindComponent<Virtualize<
LogEntry
>>().Instance;
28
logEntries.InsertSorted(
LogEntry
.Create(timestamp: DateTime.UtcNow, logMessage: message, isErrorMessage: false));
46
var
entry =
LogEntry
.Create(timestamp, logMessage: "Repeated message", isErrorMessage: false);
47
var
repeatedEntry =
LogEntry
.Create(timestamp, logMessage: "Repeated message", isErrorMessage: false);
51
var
rematerializedEntry =
LogEntry
.Create(timestamp, logMessage: "Repeated message", isErrorMessage: false);
55
var virtualize = cut.FindComponent<Virtualize<
LogEntry
>>().Instance;
93
logEntries.InsertSorted(
LogEntry
.Create(
227
var
pauseEntry =
LogEntry
.CreatePause("resource", pauseStart, pauseEnd);
231
logEntries.InsertSorted(
LogEntry
.Create(
264
logEntries.InsertSorted(
LogEntry
.Create(
358
logEntries.InsertSorted(
LogEntry
.Create(
381
logEntries.InsertSorted(
LogEntry
.Create(
413
logEntries.InsertSorted(
LogEntry
.Create(
440
logEntries.InsertSorted(
LogEntry
.Create(
476
logEntries.InsertSorted(
LogEntry
.Create(
Pages\ConsoleLogsTests.cs (7)
633
var
earliestEntry = instance._logEntries.GetEntries()[0];
739
var
earliestEntry = instance._logEntries.GetEntries()[0];
781
var
logEntry = Assert.Single(cut.Instance._logEntries.GetEntries());
1028
var
pauseLog = Assert.Single(cut.Instance._logEntries.GetEntries());
1054
var
pauseEntry = Assert.Single(cut.Instance._logEntries.GetEntries());
1077
var
newLog = Assert.Single(logViewer.Instance.LogEntries!.GetEntries(), e => e.RawContent == resumeContent);
1087
foreach (
var
logEntry in logEntries.GetEntries())
Aspire.Dashboard.Tests (20)
ConsoleLogsTests\LogEntriesTests.cs (20)
21
var
logEntry = logParser.CreateLogEntry(content, isError, resourcePrefix: null);
35
var
logEntry1 = logParser.CreateLogEntry("Test", isErrorOutput: false, resourcePrefix: null);
39
var
logEntry2 = logParser.CreateLogEntry("2024-08-19T06:12:01.000Z Test", isErrorOutput: false, resourcePrefix: null);
46
var
logEntry3 = logParser.CreateLogEntry("2024-08-19T06:12:02.000Z Test", isErrorOutput: false, resourcePrefix: null);
63
logEntries.InsertSorted(
LogEntry
.CreatePause(
69
var
pauseEntry =
LogEntry
.CreatePause("resource-name", new DateTime(2024, 1, 1, 0, 0, 0, DateTimeKind.Utc));
79
var
entry = Assert.Single(logEntries.GetEntries());
94
var
entry = Assert.Single(logEntries.GetEntries());
243
logEntries.InsertSorted(
LogEntry
.Create(timestamp.AddSeconds(1), "1", isErrorMessage: false));
244
logEntries.InsertSorted(
LogEntry
.Create(timestamp.AddSeconds(3), "3", isErrorMessage: false));
245
logEntries.InsertSorted(
LogEntry
.Create(timestamp.AddSeconds(2), "2", isErrorMessage: false));
264
logEntries.InsertSorted(
LogEntry
.Create(timestamp.AddSeconds(1), "1", isErrorMessage: false));
265
logEntries.InsertSorted(
LogEntry
.Create(timestamp.AddSeconds(2), "2", isErrorMessage: false));
266
logEntries.InsertSorted(
LogEntry
.Create(timestamp.AddSeconds(3), "3", isErrorMessage: false));
284
logEntries.InsertSorted(
LogEntry
.Create(timestamp.AddSeconds(1), "1", isErrorMessage: false));
285
logEntries.InsertSorted(
LogEntry
.Create(timestamp.AddSeconds(3), "3", isErrorMessage: false));
286
logEntries.InsertSorted(
LogEntry
.Create(timestamp.AddSeconds(2), "2", isErrorMessage: false));
302
var
entry = parser.CreateLogEntry("\x1b[36mhttps://www.example.com\u001b[0m", isErrorOutput: false, resourcePrefix: null);
317
var
entry = parser.CreateLogEntry("\u001b[40m\u001b[32minfo\u001b[39m\u001b[22m\u001b[49m: LoggerName", isErrorOutput: false, resourcePrefix: null);