diff --git a/10/umbraco-cms/fundamentals/backoffice/logviewer.md b/10/umbraco-cms/fundamentals/backoffice/logviewer.md index 5add150d018..a0bf80cfd89 100644 --- a/10/umbraco-cms/fundamentals/backoffice/logviewer.md +++ b/10/umbraco-cms/fundamentals/backoffice/logviewer.md @@ -78,12 +78,15 @@ public class AzureTableLogViewer : SerilogLogViewerSourceBase var requiredEntities = skip + take; IEnumerable results = client.Query().Take(requiredEntities); - return results - .Skip(skip) - .Take(take) - .Select(x => LogEventReader.ReadFromString(x.Data)) - .Where(filter.TakeLogEvent) - .ToList(); + return results + .Skip(skip) + .Take(take) + .Select(x => LogEventReader.ReadFromString(x.Data)) + // Filter by timestamp to avoid retrieving all logs from the table, preventing memory and performance issues + .Where(evt => evt.Timestamp >= logTimePeriod.StartTime.Date && + evt.Timestamp <= logTimePeriod.EndTime.Date.AddDays(1).AddSeconds(-1)) + .Where(filter.TakeLogEvent) + .ToList(); } public override IReadOnlyList? GetSavedSearches() diff --git a/13/umbraco-cms/fundamentals/backoffice/logviewer.md b/13/umbraco-cms/fundamentals/backoffice/logviewer.md index cd4ffe42d48..f133689d46a 100644 --- a/13/umbraco-cms/fundamentals/backoffice/logviewer.md +++ b/13/umbraco-cms/fundamentals/backoffice/logviewer.md @@ -80,12 +80,15 @@ public class AzureTableLogViewer : SerilogLogViewerSourceBase var requiredEntities = skip + take; IEnumerable results = client.Query().Take(requiredEntities); - return results - .Skip(skip) - .Take(take) - .Select(x => LogEventReader.ReadFromString(x.Data)) - .Where(filter.TakeLogEvent) - .ToList(); + return results + .Skip(skip) + .Take(take) + .Select(x => LogEventReader.ReadFromString(x.Data)) + // Filter by timestamp to avoid retrieving all logs from the table, preventing memory and performance issues + .Where(evt => evt.Timestamp >= logTimePeriod.StartTime.Date && + evt.Timestamp <= logTimePeriod.EndTime.Date.AddDays(1).AddSeconds(-1)) + .Where(filter.TakeLogEvent) + .ToList(); } public override IReadOnlyList? GetSavedSearches() diff --git a/14/umbraco-cms/fundamentals/backoffice/logviewer.md b/14/umbraco-cms/fundamentals/backoffice/logviewer.md index cd4ffe42d48..f133689d46a 100644 --- a/14/umbraco-cms/fundamentals/backoffice/logviewer.md +++ b/14/umbraco-cms/fundamentals/backoffice/logviewer.md @@ -80,12 +80,15 @@ public class AzureTableLogViewer : SerilogLogViewerSourceBase var requiredEntities = skip + take; IEnumerable results = client.Query().Take(requiredEntities); - return results - .Skip(skip) - .Take(take) - .Select(x => LogEventReader.ReadFromString(x.Data)) - .Where(filter.TakeLogEvent) - .ToList(); + return results + .Skip(skip) + .Take(take) + .Select(x => LogEventReader.ReadFromString(x.Data)) + // Filter by timestamp to avoid retrieving all logs from the table, preventing memory and performance issues + .Where(evt => evt.Timestamp >= logTimePeriod.StartTime.Date && + evt.Timestamp <= logTimePeriod.EndTime.Date.AddDays(1).AddSeconds(-1)) + .Where(filter.TakeLogEvent) + .ToList(); } public override IReadOnlyList? GetSavedSearches() diff --git a/15/umbraco-cms/fundamentals/backoffice/logviewer.md b/15/umbraco-cms/fundamentals/backoffice/logviewer.md index cd4ffe42d48..f133689d46a 100644 --- a/15/umbraco-cms/fundamentals/backoffice/logviewer.md +++ b/15/umbraco-cms/fundamentals/backoffice/logviewer.md @@ -80,12 +80,15 @@ public class AzureTableLogViewer : SerilogLogViewerSourceBase var requiredEntities = skip + take; IEnumerable results = client.Query().Take(requiredEntities); - return results - .Skip(skip) - .Take(take) - .Select(x => LogEventReader.ReadFromString(x.Data)) - .Where(filter.TakeLogEvent) - .ToList(); + return results + .Skip(skip) + .Take(take) + .Select(x => LogEventReader.ReadFromString(x.Data)) + // Filter by timestamp to avoid retrieving all logs from the table, preventing memory and performance issues + .Where(evt => evt.Timestamp >= logTimePeriod.StartTime.Date && + evt.Timestamp <= logTimePeriod.EndTime.Date.AddDays(1).AddSeconds(-1)) + .Where(filter.TakeLogEvent) + .ToList(); } public override IReadOnlyList? GetSavedSearches()